In MariaDB, SUBSTRING_INDEX()
is een ingebouwde tekenreeksfunctie. Het retourneert een subtekenreeks van een tekenreeks vóór een bepaald aantal keren dat het opgegeven scheidingsteken voorkomt.
SUBSTRING_INDEX()
vereist op drie argumenten; de tekenreeks, het scheidingsteken en het aantal (d.w.z. het aantal keren dat dat scheidingsteken voorkomt).
Syntaxis
De syntaxis gaat als volgt:
SUBSTRING_INDEX(str,delim,count)
Waar str
is de string, delim
is het scheidingsteken, en count
is het aantal keren dat dat scheidingsteken moet worden gebruikt voor het bepalen van de subtekenreeks die moet worden geretourneerd.
Als count
positief is, wordt alles links van het laatste scheidingsteken (vanaf links geteld) geretourneerd. Als count
negatief is, wordt alles rechts van het laatste scheidingsteken (vanaf rechts geteld) geretourneerd.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3);
Resultaat:
+-------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', 3) | +-------------------------------------------------------+ | /users/homer | +-------------------------------------------------------+
Negatieve telling
Als u een negatieve waarde voor de telling opgeeft, wordt deze achteruit geteld vanaf het einde van de tekenreeks:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3);
Resultaat:
+--------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '/', -3) | +--------------------------------------------------------+ | homer/docs/cat_vids | +--------------------------------------------------------+
Scheidingsteken niet gevonden
Als het scheidingsteken niet in de tekenreeks voorkomt, wordt de hele tekenreeks geretourneerd:
SELECT SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3);
Resultaat:
+-------------------------------------------------------+ | SUBSTRING_INDEX('/users/homer/docs/cat_vids', '.', 3) | +-------------------------------------------------------+ | /users/homer/docs/cat_vids | +-------------------------------------------------------+
Nullargumenten
Als een (of alle) argumenten null
. zijn , de SUBSTRING_INDEX()
functie retourneert null
:
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";
Resultaat:
+------+------+------+------+ | 1 | 2 | 3 | 4 | +------+------+------+------+ | NULL | NULL | NULL | NULL | +------+------+------+------+
Ontbrekende argumenten
Aanroepen van SUBSTRING_INDEX()
zonder het doorgeven van argumenten resulteert in een fout:
SELECT SUBSTRING_INDEX();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'