In MySQL die POSITION()
Die Funktion gibt die Position des ersten Vorkommens eines Teilstrings innerhalb des Strings zurück.
Diese Funktion ist eigentlich ein Synonym für LOCATE()
, aber mit einer etwas anderen Syntax. Das LOCATE()
Die Funktion hat auch zusätzliche Funktionalität, da sie es Ihnen ermöglicht, eine Startposition für Ihre Suche zu definieren.
Syntax
Die grundlegende Syntax lautet wie folgt:
POSITION(substr IN str)
Wobei substr
ist der Teilstring und str
ist die Saite.
Beispiel 1 – Grundlegende Verwendung
SELECT POSITION('Cat' IN 'The Cat') Result;
Ergebnis:
+--------+ | Result | +--------+ | 5 | +--------+
Beispiel 2 – Groß-/Kleinschreibung
Die POSITION()
Die Funktion ist Multibyte-sicher und unterscheidet nur dann zwischen Groß- und Kleinschreibung, wenn mindestens ein Argument eine binäre Zeichenfolge ist.
Daher wird im folgenden Beispiel die Groß-/Kleinschreibung nicht beachtet:
SELECT POSITION('Cat' IN 'The cat') Result;
Ergebnis:
+--------+ | Result | +--------+ | 5 | +--------+
Beispiel 3 – Keine Übereinstimmung
Die Funktion gibt 0
zurück wenn der Teilstring nicht innerhalb des Strings gefunden wird:
SELECT POSITION('Dog' IN 'The cat') Result;
Ergebnis:
+--------+ | Result | +--------+ | 0 | +--------+
Beispiel 4 – Eingebettete Teilstrings
Seien Sie vorsichtig bei der Auswahl der Teilzeichenfolge. Wenn es Teil eines anderen Wortes ist, könnten Sie ein falsches Positiv erhalten:
SELECT POSITION('Cat' IN 'Good Catch!') Result;
Ergebnis:
+--------+ | Result | +--------+ | 6 | +--------+
Wenn Sie nur nach Katze suchen , das Tier, wäre dies ein Fehlalarm.
Beispiel 5 – Nur erstes Vorkommen
Denken Sie daran, dass diese Funktion nur die Position des ersten zurückgibt Vorkommen des Teilstrings. Alle nachfolgenden Vorkommen werden ignoriert:
SELECT POSITION('Cat' IN 'My cat is bigger than your cat') Result;
Ergebnis:
+--------+ | Result | +--------+ | 4 | +--------+
Beispiel 6 – NULL-Argumente
Wenn eines der Argumente NULL
ist , ist das Ergebnis NULL
:
SELECT POSITION('Cat' IN NULL) 'Result 1', POSITION(NULL IN 'The Cat') 'Result 2';
Ergebnis:
+----------+----------+ | Result 1 | Result 2 | +----------+----------+ | NULL | NULL | +----------+----------+
Wie bereits erwähnt, können Sie auch LOCATE()
verwenden Funktion, mit der Sie eine Startposition für Ihre Suche definieren können.