- 1 1. Was ist die SUBSTRING-Funktion?
- 2 2. Grundlegende Verwendung der SUBSTRING-Funktion
- 3 3. Praktische Anwendungen der SUBSTRING-Funktion
- 4 4. Vergleich mit anderen Zeichenkettenfunktionen
- 5 5. Fortgeschrittene Nutzung und Optimierung der SUBSTRING-Funktion
- 6 6. Beispiele und bewährte Methoden für die SUBSTRING‑Funktion
- 7 7. Fehlerbehandlung und Versionsunterschiede
1. Was ist die SUBSTRING-Funktion?
Die SUBSTRING-Funktion in MySQL ist ein unverzichtbares Werkzeug zum Extrahieren eines Teils einer Zeichenkette. Mit dieser Funktion können Sie nur den benötigten Teil der Daten aus einer Datenbank abrufen. Zum Beispiel ist sie nützlich, um die Domain aus der E‑Mail‑Adresse eines Benutzers zu extrahieren oder einen bestimmten Abschnitt aus einem Produktcode zu holen.
1.1 Grundsyntax
Die Grundsyntax der SUBSTRING-Funktion lautet wie folgt:
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
str: Die Zielzeichenkette, aus der extrahiert werden soll.pos: Die Startposition (1‑basierter Index).len: Die Anzahl der zu extrahierenden Zeichen (optional).
Wenn pos positiv ist, wird vom Anfang der Zeichenkette gezählt. Ist es negativ, wird vom Ende gezählt. Wird len weggelassen, extrahiert die Funktion vom angegebenen Start bis zum Ende der Zeichenkette.
1.2 Anwendungsfälle der SUBSTRING-Funktion
Diese Funktion wird zum Formatieren von Zeichenketten‑Daten oder zum Extrahieren bestimmter Teile verwendet und macht das Abrufen und Verarbeiten von Daten in Datenbanken effizienter.
2. Grundlegende Verwendung der SUBSTRING-Funktion
Betrachten wir ein einfaches Beispiel, um zu verstehen, wie es funktioniert.
2.1 Extrahieren eines Teils einer Zeichenkette
Die folgende Abfrage extrahiert 6 Zeichen, beginnend mit dem 3. Zeichen der Zeichenkette "Hello, World!".
SELECT SUBSTRING('Hello, World!', 3, 6);
Das Ergebnis ist "llo, W". Da pos 3 ist, beginnt es beim 3. Zeichen, und mit len auf 6 gesetzt, werden 6 Zeichen extrahiert.
2.2 Weglassen der Länge
Wenn Sie len weglassen, wird ab der angegebenen Position bis zum Ende der Zeichenkette extrahiert.
SELECT SUBSTRING('Hello, World!', 8);
Das Ergebnis ist "World!", beginnend mit dem 8. Zeichen bis zum Ende.
2.3 Negative Position
Durch die Verwendung eines negativen Werts können Sie die Position vom Ende der Zeichenkette aus angeben.
SELECT SUBSTRING('Hello, World!', -5);
Diese Abfrage liefert "orld!", indem die letzten 5 Zeichen extrahiert werden.
3. Praktische Anwendungen der SUBSTRING-Funktion
Die SUBSTRING-Funktion wird häufig in realen Datenoperationen eingesetzt. Hier einige Beispiele.
3.1 Extrahieren der Domain aus einer E‑Mail‑Adresse
Durch die Kombination von SUBSTRING mit LOCATE können Sie den Domain‑Teil aus einer E‑Mail‑Adresse extrahieren.
SELECT email, SUBSTRING(email, LOCATE('@', email) + 1) AS domain FROM users;
Diese Abfrage holt die Zeichenkette nach dem "@"‑Symbol und liefert nur den Domain‑Teil.
3.2 Extrahieren eines Teils eines Produktcodes
Hier ein Beispiel zum Extrahieren eines bestimmten Teils eines Produktcodes.
SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;
Diese Abfrage extrahiert 4 Zeichen, beginnend mit dem 5. Zeichen des Produktcodes, und zeigt sie als neue Spalte product_id an.
3.3 Verwendung mit Unterabfragen
In Kombination mit Unterabfragen können Sie Daten unter komplexen Bedingungen extrahieren.
SELECT id, SUBSTRING(description, 1, 10) AS short_desc FROM (SELECT * FROM products WHERE category = 'Electronics') AS sub;
Diese Abfrage extrahiert die ersten 10 Zeichen der description von Produkten, bei denen category 'Electronics' ist.

4. Vergleich mit anderen Zeichenkettenfunktionen
Weitere Funktionen mit ähnlichen Zwe SUBSTRING sind LEFT, RIGHT und SUBSTR.
4.1 Funktionen LEFT und RIGHT
LEFT(str, len): Gibt die angegebene Anzahl von Zeichen vom Anfang der Zeichenkette zurück.RIGHT(str, len): Gibt die angegebene Anzahl von Zeichen vom Ende der Zeichenkette zurück.
SELECT LEFT('Hello, World!', 5); -- "Hello"
SELECT RIGHT('Hello, World!', 6); -- "World!"
Diese Funktionen sind praktisch, wenn Sie einen Teil einer Zeichenkette von einem bestimmten Ende extrahieren möchten.
4.2 Funktion SUBSTR
SUBSTR ist ein Alias für SUBSTRING und kann auf dieselbe Weise verwendet werden.
SELECT SUBSTR('Hello, World!', 8); -- "World!"
Diese Abfrage liefert "World!" genau wie SUBSTRING.
5. Fortgeschrittene Nutzung und Optimierung der SUBSTRING-Funktion
So verwenden Sie SUBSTRING effizienter und optimieren seine Leistung.
5.1 Leistungsoptimierung
Die Verwendung von SUBSTRING bei großen Datensätzen kann die Leistung beeinträchtigen. Erwägen Sie, Indizes zu erstellen und bei Bedarf den Ausführungsplan der Abfrage zu prüfen. Wenn Sie häufig denselben Teilstring extrahieren, kann das Zwischenspeichern der Ergebnisse ebenfalls helfen.
5.2 Verwendung in der WHERE‑Klausel
Sie können SUBSTRING in einer WHERE‑Klausel verwenden, um basierend auf einem Teil eines Strings zu suchen.
SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';
Diese Abfrage ruft Produkte ab, deren product_code mit ‚ABC‘ beginnt.
6. Beispiele und bewährte Methoden für die SUBSTRING‑Funktion
Hier sind praktische Beispiele und bewährte Methoden für die Verwendung von SUBSTRING.
6.1 Beispielcode
Das folgende Beispiel teilt den vollständigen Namen eines Kunden in Vor‑ und Nachnamen auf.
SELECT name, SUBSTRING(name, 1, LOCATE(' ', name) - 1) AS first_name,
SUBSTRING(name, LOCATE(' ', name) + 1) AS last_name
FROM customers;
Diese Abfrage extrahiert den Vor‑ und Nachnamen aus einem durch ein Leerzeichen getrennten vollständigen Namen.
6.2 Bewährte Methoden
- Minimale Extraktion : Extrahieren Sie nur das Notwendige mit
SUBSTRING, um die Leistungsbelastung zu minimieren. - Datentyp beachten : Wenn Sie
SUBSTRINGauf numerische Daten anwenden, casten Sie diese zuerst explizit in einen String. - Indexüberlegungen : Die Verwendung von
SUBSTRINGin einerWHERE‑Klausel kann verhindern, dass Indizes genutzt werden; prüfen Sie daher die Abfrageleistung.
7. Fehlerbehandlung und Versionsunterschiede
Wir behandeln die Fehlerbehandlung und Unterschiede im Verhalten von SUBSTRING in verschiedenen MySQL‑Versionen.
7.1 Fehlerbehandlung
Wenn die angegebene Position in SUBSTRING außerhalb des Zeichenkettenbereichs liegt, gibt sie eine leere Zeichenkette zurück. Da dies kein Fehler ist, wird empfohlen, vorher eine Logik einzubauen, die das Ergebnis prüft.
7.2 Versionsunterschiede
Je nach MySQL‑Version kann das Verhalten von SUBSTRING variieren. Beispielsweise gehen einige ältere Versionen anders mit mehrbyteigen Zeichen um. Prüfen Sie die Kompatibilität zwischen den Versionen und ergreifen Sie bei Bedarf geeignete Maßnahmen.


