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

So extrahieren Sie einen Teilstring in MySQL

Problem:

Sie möchten eine Teilzeichenfolge aus dem Text in einer bestimmten Spalte extrahieren.

Beispiel:

Unsere Datenbank hat eine Tabelle namens web_address mit Daten in den Spalten id und address . Wir möchten die Datei „www. entfernen “ am Anfang und die „.com “ am Ende jeder address .

id Adresse
1 www.example.com
2 www.google.com
3 www.learnsql.com

Lösung 1:

Um die ersten 4 Zeichen zu entfernen:

SELECT
SUBSTR(address, 5, LENGTH(address) -4) AS substring
FROM web_address;

So entfernen Sie die letzten 4 Zeichen:

SELECT
SUBSTR(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

So entfernen Sie die ersten 4 Zeichen und die letzten 4 Zeichen:

SELECT
SUBSTR(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Lösung 2:

Um die ersten 4 Zeichen zu entfernen:

SELECT
SUBSTRING(address, 5, LENGTH(address)) AS substring
FROM web_address;

So entfernen Sie die letzten 4 Zeichen:

SELECT
SUBSTRING(address, 1, LENGTH(address) -4) AS substring
FROM web_address;

So entfernen Sie die ersten 4 Zeichen und die letzten 4 Zeichen:

SELECT
SUBSTRING(address, 5, LENGTH(address) -8) AS substring
FROM web_address;

Lösung 3:

So entfernen Sie alle Zeichen vor dem zweiten „.“ von rechts:

SELECT
SUBSTRING_INDEX(address, '.', -2) AS substring
FROM web_address;

So entfernen Sie alle Zeichen nach dem zweiten „.“ von links:

SELECT
SUBSTRING_INDEX(address, '.', 2) AS substring
FROM web_address;

Um alle Zeichen nach dem zweiten „.“ von links zu entfernen, entfernen Sie dann alle Zeichen vor dem ersten „.“ von rechts:

SELECT
SUBSTRING_INDEX(
	SUBSTRING_INDEX(address, '.', 2),
	'.',
	-1
) AS substring
FROM web_address;

Das Ergebnis ist:

Teilstring
Beispiel
google
learnsql

Diskussion:

Sowohl die erste als auch die zweite Lösung entfernen mit dem SUBSTR() eine bestimmte Anzahl von Zeichen aus dem Text oder SUBSTRING() Funktion. SUBSTR() ist ein Synonym für SUBSTRING() . Beide benötigen die Zeichenfolge und die Startposition als Argumente. Das letzte Argument, das die Anzahl der zu extrahierenden Zeichen definiert, ist optional. Wenn das letzte Argument weggelassen wird, wird die gesamte Zeichenkette (ab dem Startpunkt) zurückgegeben.

In der dritten Lösung, dem SUBSTRING_INDEX() Funktion entfernt den Text vor oder nach den angegebenen Zeichen. Es erfordert als Argumente die Zeichenfolge, das Zeichen und wie viele Instanzen des Zeichens gefunden werden sollen, bis die Textextraktion beginnt.