Sie können den MySQL SUBSTRING_INDEX()
verwenden Funktion, um alles vor oder nach einem bestimmten Zeichen (oder Zeichen) in einer Zeichenfolge zurückzugeben.
Mit dieser Funktion können Sie das zu verwendende Trennzeichen angeben, und Sie können angeben, welches (falls die Zeichenfolge mehr als eines enthält).
Syntax
Hier ist die Syntax:
SUBSTRING_INDEX(str,delim,count)
Wobei str
ist die Zeichenfolge, delim
ist das Trennzeichen (von dem Sie einen Teilstring links oder rechts davon haben möchten) und count
gibt an, welches Trennzeichen (falls das Trennzeichen mehrfach in der Zeichenkette vorkommt).
Beachten Sie, dass das Trennzeichen ein einzelnes Zeichen oder mehrere Zeichen sein kann.
Beispiel 1 – Alles links auswählen
Um alles vorher auszuwählen ein bestimmtes Zeichen, verwenden Sie einen positiven Wert:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 2);
Ergebnis:
Cats,Dogs
In diesem Beispiel wählen wir alles vor dem zweiten Komma aus. Dies geschieht durch Verwendung eines Kommas (,
) als Trennzeichen und 2
als Zählung.
Beispiel 2 – Alles rechts auswählen
Um alles nach auszuwählen ein bestimmtes Zeichen, müssen Sie einen negativen Wert verwenden:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', -2);
Ergebnis:
Dogs,Rabbits
Beachten Sie, dass der negative Wert bedeutet, dass von rechts eingezählt wird, und wählen Sie dann die Teilzeichenfolge rechts vom Trennzeichen aus.
Was ist, wenn das Trennzeichen nicht übereinstimmt?
Wenn das Trennzeichen nicht in der Zeichenfolge gefunden wird, wird die Zeichenfolge einfach vollständig zurückgegeben.
Beispiel:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', '-', 1);
Ergebnis:
Cats,Dogs,Rabbits
In diesem Fall wird die gesamte Zeichenfolge vollständig zurückgegeben, da wir einen Bindestrich verwendet haben (-
) als Trennzeichen, aber es gab keine Bindestriche in der Zeichenfolge.
Wir würden das gleiche Ergebnis erhalten, wenn die Zeichenfolge do enthalten das Trennzeichen, aber unseren count
überschreitet die Anzahl der Trennzeichen in der Zeichenfolge.
Beispiel:
SELECT SUBSTRING_INDEX('Cats,Dogs,Rabbits', ',', 10);
Ergebnis:
Cats,Dogs,Rabbits
Groß- und Kleinschreibung
Der SUBSTRING_INDEX()
-Funktion führt eine Suche nach dem Trennzeichen durch, bei der die Groß-/Kleinschreibung beachtet wird. Das heißt, das Trennzeichen muss der richtige Fall sein, bevor es passt.
Falsche Groß-/Kleinschreibung
Hier ist ein Beispiel, bei dem die Groß-/Kleinschreibung nicht übereinstimmt:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'AND', 2);
Ergebnis:
Cats and Dogs and Rabbits
Wir bekommen den ganzen String vollständig.
Korrekter Fall
Hier ist das gleiche Beispiel, aber mit übereinstimmender Groß-/Kleinschreibung:
SELECT SUBSTRING_INDEX('Cats and Dogs and Rabbits', 'and', 2);
Ergebnis:
Cats and Dogs