MySQL-SUBSTRING_INDEX

Haider Ali 20 Juni 2023
MySQL-SUBSTRING_INDEX

In diesem Leitfaden werden wir das Konzept der Funktion substring_index in MySQL verstehen. Ein solches Konzept ermöglicht es einem Benutzer, die Zeichenfolge seiner Wahl aus einer Reihe verschiedener Zeichenfolgen abzurufen.

Lassen Sie uns eintauchen und diese Funktion verstehen.

SUBSTRING_INDEX in MySQL

Lassen Sie uns zunächst einige wichtige Konzepte verstehen, die für die Arbeit mit der Funktion substring_index wesentlich sind. Diese sind nämlich: DELIMITER und CHARINDEX().

Trennzeichen ist ein zusammengesetztes Symbol, das als Hauptpunkt dient, an dem die Zeichenfolge unterbrochen werden soll. Die Zeichenfolge wird an diesem Punkt unterbrochen, und die abgerufene Zeichenfolge stammt entweder von vor diesem Punkt oder davor, abhängig von unserer Eingabe.

Charindex() ist eine Funktion in MySQL, die verwendet wird, wenn wir die Position eines bestimmten Teilstrings in einem String abrufen und seine Position zurückgeben möchten. Zu seinen Parametern gehören die (substring, string).

Substring-Funktionscode

Der folgende Code zeigt die Funktionsweise der Funktion Substring_index. Dieser Code ist das SQL Server-Äquivalent der MySQL-Funktion substring_index.

Der folgende Code sollte auf dem SQL Server ausgeführt werden.

CREATE FUNCTION SUB_STRING
(
@STRING VARCHAR(8000),
@DELIMITER VARCHAR(1),
@POSITION INT
)
RETURNS VARCHAR(8000)
AS
BEGIN
IF @POSITION = 0
BEGIN
	RETURN SUBSTRING(@STRING,0,CHARINDEX(@DELIMITER,@STRING))
END
IF @POSITION = 1
BEGIN
	RETURN SUBSTRING(@STRING,CHARINDEX(@DELIMITER,@STRING)+1,LEN(@STRING))
END
RETURN @STRING
END;

Lassen Sie uns den Code verstehen.

Wir haben eine Funktion erstellt, nämlich SUB_STRING und innerhalb dieser Funktion befinden sich die Parameter @string (String, aus dem der Teilstring abgerufen wird), @delimiter und @position (es hat zwei Werte 0 oder 1).

@Position ist ein solcher Parameter, der, wenn er auf 0 gesetzt ist, mit dem Abrufen vom Anfangsindex der Zeichenfolge bis zum Trennzeichen beginnen würde, und wenn er auf 1 gesetzt ist, mit dem Abrufen ab dem 1-Punkt voran beginnt des Trennzeichens und bis zum letzten der Zeichenfolge.

Die Begin-Klausel gibt den Beginn des Codeblocks an, und die End-Klausel gibt das Ende des Codeblocks an.

In der ersten IF-Bedingung wird die Position auf 0 gesetzt. In der Funktion substring haben wir die Zeichenfolge, die aus dem Index 0 abgerufen werden soll, die Funktion Charindex().

Dies würde die Teilzeichenfolge vom Index 0 bis zum Trennzeichen zurückgeben.

Beispiel 1

Verstehen Sie dies anhand des folgenden Beispiels.

SELECT dbo.SUB_STRING('ahsanali@email.com','@',0)

Teilstring 0

Wie Sie sehen können, wurde die Teilzeichenfolge vom Index 0 bis zum Trennzeichen zurückgegeben.

Die zweite IF-Bedingung setzt die Position auf 1. In der Substring-Funktion haben wir die Charindex()-Funktion mit einer +1-Bedingung erhalten, die den Teilstring abrufen würde, der ein 1-Index vor dem Trennzeichen und bis zum letzten String ist.

Beispiel 2

Lassen Sie uns anhand eines anderen Beispiels weiter verstehen.

SELECT dbo.SUB_STRING('ahsanali@email.com','@',1)

Teilstring 1

Wie Sie sehen können, wurde die Teilzeichenfolge zurückgegeben, die der Index 1 vor dem Trennzeichen und bis zur letzten Zeichenfolge war.

Ein weiterer Punkt ist, dass, wenn Sie bei @position (0 oder 1) einen falschen Wert angeben, die vollständige Zeichenfolge zurückgegeben würde.

SELECT dbo.SUB_STRING('ahsanali@email.com','&',3)

falscher Wert

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn