In MariaDB INSTR()
ist eine eingebaute String-Funktion, die die Position des ersten Vorkommens eines Teilstrings innerhalb eines anderen Strings zurückgibt.
INSTR()
ähnelt dem LOCATE()
Funktion, außer dass LOCATE()
bietet die Möglichkeit, eine Startposition für die Suche anzugeben. Außerdem wird die Argumentreihenfolge zwischen diesen beiden Funktionen umgekehrt.
Syntax
Die Syntax lautet wie folgt:
INSTR(str,substr)
Wobei str
ist die Zeichenfolge, substr
ist der zu suchende Teilstring.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT INSTR('The hot sun', 'hot');
Ergebnis:
+-----------------------------+ | INSTR('The hot sun', 'hot') | +-----------------------------+ | 5 | +-----------------------------+
Groß-/Kleinschreibung wird nicht beachtet
INSTR()
führt eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durch:
SELECT INSTR('The hot sun', 'HOT');
Ergebnis:
+-----------------------------+ | INSTR('The hot sun', 'HOT') | +-----------------------------+ | 5 | +-----------------------------+
Mehrere Vorkommen
Wenn der Teilstring mehr als einmal vorkommt, wird nur die Position des ersten zurückgegeben:
SELECT INSTR('The hot sun is really hot', 'hot');
Ergebnis:
+-------------------------------------------+ | INSTR('The hot sun is really hot', 'hot') | +-------------------------------------------+ | 5 | +-------------------------------------------+
Teilweise Übereinstimmung
Wenn die Teilzeichenfolge Teil eines größeren Worts ist, ist es immer noch eine Übereinstimmung:
SELECT INSTR('The hottest sun', 'hot');
Ergebnis:
+---------------------------------+ | INSTR('The hottest sun', 'hot') | +---------------------------------+ | 5 | +---------------------------------+
Aber wenn der String nur ein Teil des Teilstrings ist, ist es keine Übereinstimmung:
SELECT INSTR('The hot sun', 'hottest');
Ergebnis:
+---------------------------------+ | INSTR('The hot sun', 'hottest') | +---------------------------------+ | 0 | +---------------------------------+
Leerzeichen
Das Leerzeichen ist immer noch ein String, also können wir Leerzeichen in den Teilstring einfügen, auch wenn es das einzige Zeichen ist:
SELECT INSTR('The hot sun', ' ');
Ergebnis:
+---------------------------+ | INSTR('The hot sun', ' ') | +---------------------------+ | 4 | +---------------------------+
Leerer String
Folgendes passiert, wenn der Teilstring ein leerer String ist:
SELECT INSTR('The hot sun', '');
Ergebnis:
+--------------------------+ | INSTR('The hot sun', '') | +--------------------------+ | 1 | +--------------------------+
Keine Übereinstimmung
Wenn der Teilstring nicht im String gefunden wird, INSTR()
gibt 0
zurück :
SELECT INSTR('The hot sun', 'cold');
Ergebnis:
+------------------------------+ | INSTR('The hot sun', 'cold') | +------------------------------+ | 0 | +------------------------------+
Null-Argumente
Bereitstellung von null
für jedes der Argumente ergibt sich null
:
SELECT
INSTR('The hot sun', null),
INSTR(null, 'hot');
Ergebnis:
+----------------------------+--------------------+ | INSTR('The hot sun', null) | INSTR(null, 'hot') | +----------------------------+--------------------+ | NULL | NULL | +----------------------------+--------------------+
Angabe der falschen Anzahl von Argumenten
Aufruf von INSTR()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT INSTR('hot');
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'