In MariaDB SUBSTRING_INDEX()
ist eine eingebaute Zeichenfolgenfunktion. Es gibt einen Teilstring aus einem String vor einer bestimmten Anzahl von Vorkommen des angegebenen Trennzeichens zurück.
SUBSTRING_INDEX()
erfordert mindestens drei Argumente; die Zeichenfolge, das Trennzeichen und die Anzahl (d. h. die Anzahl der Vorkommen dieses Trennzeichens).
Syntax
Die Syntax lautet wie folgt:
SUBSTRING_INDEX(str,delim,count)
Wobei str
ist die Zeichenfolge, delim
ist das Trennzeichen und count
ist die Anzahl der Vorkommen dieses Trennzeichens, das verwendet wird, um die zurückzugebende Teilzeichenfolge zu bestimmen.
Wenn count
positiv ist, wird alles links vom letzten Trennzeichen (von links gezählt) zurückgegeben. Wenn count
negativ ist, wird alles rechts vom letzten Trennzeichen (von rechts gezählt) zurückgegeben.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);
Ergebnis:
Negativzahl
Die Angabe eines negativen Werts für die Anzahl bewirkt, dass sie vom Ende der Zeichenfolge rückwärts gezählt wird:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);
Ergebnis:
Trennzeichen nicht gefunden
Wenn das Trennzeichen in der Zeichenfolge nicht vorhanden ist, wird die gesamte Zeichenfolge zurückgegeben:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);
Ergebnis:
Null-Argumente
Wenn eines (oder alle) Argumente null
sind , der SUBSTRING_INDEX()
Funktion gibt null
zurück :
SELECT
SUBSTRING_INDEX(null, '/', 3) AS "1",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', null, 3) AS "2",
SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', null) AS "3",
SUBSTRING_INDEX(null, null, null) AS "4";
Ergebnis:
+------+------+------+------+| 1 | 2 | 3 | 4 |+------+------+------+------+| NULL | NULL | NULL | NULL |+------+------+------+------+
Fehlende Argumente
Aufruf von SUBSTRING_INDEX()
ohne Argumente zu übergeben führt zu einem Fehler:
SELECT SUBSTRING_INDEX();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion 'SUBSTRING_INDEX'