SUBSTRING_INDEX
Entsprechung in PostgreSQL:
Gibt den Teil eines Strings vor dem angegebenen Vorkommen eines Trennzeichens zurück.
MySQL 8.1
SUBSTRING_INDEX(str, delimiter, count)Parameter
- strVARCHAR
- Ausgangsstring
- delimiterVARCHAR
- Trennzeichen, Groß- und Kleinschreibung wird beachtet
- countINT
- Nummer des Vorkommens des Trennzeichens, eine negative zählt vom Ende des Strings
Rückgabewert
Teil des Strings links vom count-ten Trennzeichen, bei negativem count rechts vom count-ten Trennzeichen von hinten; der ganze String, wenn es weniger Trennzeichen gibt; leerer String, wenn count 0 ist
Beispiele
Teil vor dem zweiten Punkt
MySQL 8.1
SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);Teil nach dem zweiten Punkt von hinten
MySQL 8.1
SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);Domain aus der E-Mail
MySQL 8.1
SELECT email,
SUBSTRING_INDEX(email, '@', -1) AS domain
FROM Users
LIMIT 5;Details
Um einen Teil des Strings nach seiner Nummer zu nehmen, wie mit SPLIT_PART in PostgreSQL, verschachtele zwei Aufrufe: Schneide zuerst alles nach dem n-ten Trennzeichen ab und nimm dann den letzten Teil. SUBSTRING_INDEX(SUBSTRING_INDEX('www.mysql.com', '.', 2), '.', -1) gibt mysql zurück.