Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So wählen Sie alles vor/nach einem bestimmten Zeichen in MySQL aus – SUBSTRING_INDEX()

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