Der INSTR()
Die Funktion gibt die Position des ersten Vorkommens eines Teilstrings innerhalb eines Strings zurück. Im Grunde macht es dasselbe wie die Zwei-Argument-Syntax von LOCATE()
Funktion tut (außer dass die Reihenfolge der Argumente umgekehrt ist).
Syntax
Die Syntax lautet wie folgt:
INSTR(str,substr)
Wobei str
die Zeichenfolge ist, die Sie suchen möchten, und substr
ist die Teilzeichenfolge, nach der Sie suchen.
Beispiel 1 – Grundlegende Verwendung
SELECT INSTR('Cats and dogs like to run', 'dogs') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 10 | +--------+
In diesem Fall die Zeichenfolge dogs
beginnt bei Position 10.
Beispiel 2 – Groß-/Kleinschreibung nicht beachten
Groß- und Kleinschreibung wird nicht beachtet:
SELECT INSTR('Cats and dogs like to run', 'DOGS') AS 'Result 1', INSTR('Cats and DOGS like to run', 'dogs') AS 'Result 2';
Ergebnis:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | 10 | 10 | +----------+----------+
Beispiel 3 – Teilweise Übereinstimmung
Es spielt keine Rolle, ob Ihr Suchbegriff nur einen Teil eines Wortes darstellt, er wird dennoch übereinstimmen (schließlich suchen Sie nur nach einer Teilzeichenfolge innerhalb einer Zeichenfolge):
SELECT INSTR('Cats and dogs like to run', 'do') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 10 | +--------+
Ein Leerzeichen ist immer noch Teil der Zeichenfolge. So können Sie bei Bedarf nach dem ersten Leerzeichen suchen:
SELECT INSTR('Cats and dogs like to run', ' ') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 5 | +--------+
Beispiel 4 – Nur erstes Vorkommen
Denken Sie daran, dass nur die Position des ersten Vorkommens zurückgegeben wird:
SELECT INSTR('Cats and dogs like to run', 'a') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 2 | +--------+
Beispiel 5 – Wenn die Teilzeichenfolge nicht gefunden werden kann
Wenn der Teilstring nicht gefunden wird, ein Ergebnis von 0
wird zurückgegeben:
SELECT INSTR('Cats and dogs like to run', 'rabbit') AS Result;
Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
Beispiel 6 – Falsche Parameterzählung
Wenn Sie einen der Parameter weglassen, erhalten Sie eine Fehlermeldung:
SELECT INSTR('Cats and dogs like to run') AS Result;
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'
Sie erhalten auch eine Fehlermeldung, wenn Sie zu viele Parameter angeben:
SELECT INSTR('Cats and dogs like to run', 'dogs', 'cats') AS Result;
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'INSTR'