In MariaDB können Sie den SUBSTRING_INDEX()
verwenden Funktion, um alles vor oder nach einem bestimmten Zeichen (oder Zeichen) in einer Zeichenfolge zurückzugeben.
Diese Funktion akzeptiert drei Argumente; die Zeichenfolge, das Trennzeichen und die Anzahl der Vorkommen dieses Trennzeichens, das zum Bestimmen der zurückzugebenden Teilzeichenfolge verwendet werden soll.
Beispiele
Wir können sehen, wie die Funktion in den folgenden Beispielen funktioniert.
Alles davor auswählen
Um alles vor einem bestimmten Zeichen auszuwählen, machen Sie das dritte Argument zu einem positiven Wert:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', 2);
Ergebnis:
Red,Green
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.
Ich habe in diesem Beispiel ein Komma verwendet, aber es hätte ein beliebiges Zeichen oder eine Zeichenfolge sein können:
SELECT SUBSTRING_INDEX('Red or Green or Blue', ' or ', 2);
Ergebnis:
Red or Green
Alles danach auswählen
Verwenden Sie einen negativen Wert, um alles nach einem bestimmten Zeichen auszuwählen:
SELECT SUBSTRING_INDEX('Red,Green,Blue', ',', -2);
Ergebnis:
Green,Blue
Beachten Sie, dass der negative Wert bedeutet, dass von rechts eingezählt wird, und wählen Sie dann die Teilzeichenfolge rechts vom Trennzeichen aus.
Wenn das Trennzeichen nicht gefunden wird
Wenn das Trennzeichen nicht in der Zeichenfolge gefunden wird, wird die Zeichenfolge vollständig zurückgegeben.
Beispiel:
SELECT SUBSTRING_INDEX('Red,Green,Blue', '-', 1);
Ergebnis:
Red,Green,Blue
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('Red,Green,Blue', ',', 10);
Ergebnis:
Red,Green,Blue
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('Red and green and blue', 'AND', 2);
Ergebnis:
Red and green and blue
Wir bekommen den ganzen String vollständig.
Korrekter Fall
Hier ist das gleiche Beispiel, aber mit übereinstimmender Groß-/Kleinschreibung:
SELECT SUBSTRING_INDEX('Red and green and blue', 'and', 2);
Ergebnis:
Red and green