- 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 String‑Funktionen
- 5 5. Erweiterte Nutzung und Optimierung der SUBSTRING‑Funktion
- 6 6. Beispiele und bewährte Vorgehensweisen für die SUBSTRING‑Funktion
- 7 7. Fehlerbehandlung und Versionsunterschiede
1. Was ist die SUBSTRING‑Funktion?
Die SUBSTRING‑Funktion ist eine wichtige MySQL‑Funktion, mit der ein Teilstring aus einem String extrahiert wird. Mit dieser Funktion können Sie nur den Teil herausziehen, den Sie aus in einer Datenbank gespeicherten Daten benötigen. Zum Beispiel ist sie nützlich, wenn Sie den Domain‑Teil aus der E‑Mail‑Adresse eines Benutzers extrahieren oder einen bestimmten Abschnitt aus einem Produktcode abrufen möchten.
1.1 Grundsyntax
Die Grundsyntax der SUBSTRING‑Funktion lautet wie folgt:
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
str: Der String, aus dem extrahiert werden soll.pos: Die Startposition (beginnt bei 1).len: Die Anzahl der zu extrahierenden Zeichen (optional).
Ist pos ein positiver Wert, zählt MySQL von Anfang des Strings vorwärts. Ist er negativ, zählt MySQL von Ende des Strings rückwärts. Wird len weggelassen, extrahiert MySQL vom angegebenen Start bis zum Ende des Strings.
1.2 Anwendungsfälle für die SUBSTRING‑Funktion
Diese Funktion wird verwendet, um Zeichenketten zu formatieren und bestimmte Teile zu extrahieren, wodurch das Suchen und Verarbeiten von Informationen in einer Datenbank effizienter wird.
2. Grundlegende Verwendung der SUBSTRING‑Funktion
Um die Grundlagen zu verstehen, schauen wir uns einige einfache Beispiele an.
2.1 Extrahieren eines Teils eines Strings
Die folgende Abfrage extrahiert 6 Zeichen, beginnend mit dem 3. Zeichen des Strings „Hello, World!”.
SELECT SUBSTRING('Hello, World!', 3, 6);
Das Ergebnis ist "llo, W". Da pos 3 ist, beginnt die Extraktion beim 3. Zeichen, und weil len 6 ist, werden 6 Zeichen extrahiert.
2.2 Weglassen des Längenparameters
Wenn Sie len weglassen, extrahiert MySQL vom angegebenen Start bis zum Ende des Strings.
SELECT SUBSTRING('Hello, World!', 8);
Das Ergebnis ist "World!", also wird alles ab dem 8. Zeichen bis zum Ende zurückgegeben.
2.3 Verwendung einer negativen Position
Mit einem negativen Wert können Sie die Position vom Ende des Strings aus angeben.
SELECT SUBSTRING('Hello, World!', -5);
Diese Abfrage liefert "orld!" und extrahiert die letzten 5 Zeichen.
3. Praktische Anwendungen der SUBSTRING‑Funktion
Die SUBSTRING‑Funktion wird häufig in realen Datenoperationen eingesetzt. Hier einige praktische Beispiele.
3.1 Extrahieren einer 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 den String nach „@“ und gibt nur den Domain‑Teil zurück.
3.2 Extrahieren eines Teils eines Produktcodes
Dieses Beispiel extrahiert einen bestimmten Abschnitt eines Produktcodes.
SELECT product_code, SUBSTRING(product_code, 5, 4) AS product_id FROM products;
In dieser Abfrage werden 4 Zeichen, beginnend mit dem 5. Zeichen des Produktcodes, extrahiert und als neue Spalte product_id angezeigt.
3.3 Verwendung in einer Unterabfrage
In Kombination mit einer Unterabfrage können Sie Daten unter komplexeren 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 von description aus Produkten, deren category den Wert ‚Electronics‘ hat.

4. Vergleich mit anderen String‑Funktionen
Weitere Funktionen, die für ähnliche Zwecke wie SUBSTRING verwendet werden können, sind LEFT, RIGHT und SUBSTR.
4.1 LEFT‑ und RIGHT‑Funktionen
LEFT(str, len): Gibt die angegebene Anzahl von Zeichen vom Anfang des Strings zurück.RIGHT(str, len): Gibt die angegebene Anzahl von Zeichen vom Ende des Strings zurück.SELECT LEFT('Hello, World!', 5); -- "Hello" SELECT RIGHT('Hello, World!', 6); -- "World!"
Diese Funktionen sind praktisch, wenn Sie einen Teilstring vom Anfang oder vom Ende eines Strings extrahieren möchten.
4.2 SUBSTR‑Funktion
SUBSTR ist ein Alias für SUBSTRING, sodass es auf dieselbe Weise verwendet werden kann.
SELECT SUBSTR('Hello, World!', 8); -- "World!"
Diese Abfrage gibt "World!" zurück, genau wie SUBSTRING.
5. Erweiterte Nutzung und Optimierung der SUBSTRING‑Funktion
Dieser Abschnitt erklärt weiterführende Anwendungs- und Optimierungstechniken.
5.1 Leistungsoptimierung
Die Verwendung von SUBSTRING bei großen Datensätzen kann die Leistung beeinträchtigen. Bei Bedarf sollten Indizes erstellt und der Ausführungsplan der Abfrage überprüft werden. Außerdem, wenn Sie häufig denselben Teilstring extrahieren, sollten Sie das Ergebnis zwischenspeichern.
5.2 Verwendung in einer WHERE‑Klausel
Sie können SUBSTRING in einer WHERE‑Klausel verwenden, um Datensätze anhand einer Teilstring‑Bedingung zu filtern.
SELECT * FROM products WHERE SUBSTRING(product_code, 1, 3) = 'ABC';
Diese Abfrage sucht nach Produkten, bei denen die ersten 3 Zeichen von product_code ‚ABC‘ sind.
6. Beispiele und bewährte Vorgehensweisen für die SUBSTRING‑Funktion
Hier finden Sie praktische Beispiele für die Verwendung von SUBSTRING sowie bewährte Vorgehensweisen für den realen Einsatz.
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;
In dieser Abfrage werden Vor‑ und Nachname aus einem durch ein Leerzeichen getrennten vollständigen Namen extrahiert.
6.2 Bewährte Vorgehensweisen
- Extrahieren Sie nur das, was Sie benötigen: Halten Sie die Länge des Teilstrings so klein wie möglich, um die Leistungsbelastung zu reduzieren.
- Achten Sie auf Datentypen: Wenn Sie
SUBSTRINGauf numerische Daten anwenden, müssen Sie diese möglicherweise explizit in einen String umwandeln. - Berücksichtigen Sie die Indexnutzung: Bei Verwendung von
SUBSTRINGin einerWHERE‑Klausel werden Indizes möglicherweise nicht effektiv genutzt, daher sollten Sie die Abfrageleistung genau beobachten.
7. Fehlerbehandlung und Versionsunterschiede
Dieser Abschnitt behandelt die Fehlerbehandlung bei der Verwendung von SUBSTRING sowie Unterschiede zwischen MySQL‑Versionen.
7.1 Fehlerbehandlung
Wenn die angegebene Position außerhalb des Zeichenkettenbereichs liegt, gibt SUBSTRING eine leere Zeichenkette zurück. Da dies kein Fehler ist, wird empfohlen, bei Bedarf im Voraus Logik hinzuzufügen, um das Ergebnis zu validieren.
7.2 Versionsunterschiede
Je nach MySQL‑Version kann das Verhalten der SUBSTRING‑Funktion variieren. Beispielsweise können einige ältere Versionen mehrbyte‑Zeichen anders behandeln. Prüfen Sie die Kompatibilität zwischen den Versionen und ergreifen Sie bei Bedarf geeignete Maßnahmen.

