Das Verständnis der MySQL `SUBSTRING()` Funktion
Takashi Yamamoto
Infrastructure Engineer · Leapcell

Key Takeaways
- Die Funktion
SUBSTRING()
extrahiert Teile einer Zeichenkette basierend auf Position und Länge. - Sie unterstützt sowohl positive als auch negative Startpositionen für eine flexible Extraktion.
- Nützlich bei der Datenbereinigung, Textanalyse und Abkürzungserzeugung.
Die Funktion SUBSTRING()
in MySQL ist ein leistungsstarkes Werkzeug zum Extrahieren bestimmter Teile von Zeichenketten. Sie wird häufig in Datenverarbeitungsaufgaben verwendet, wie z. B. zum Formatieren von Ausgaben, zum Parsen von strukturiertem Text oder zum Bereinigen von Datenfeldern.
Syntax
MySQL bietet zwei Syntaxvarianten für die Funktion SUBSTRING()
:
SUBSTRING(string, start, length)
oder
SUBSTRING(string FROM start FOR length)
string
: Die Quellzeichenkette, aus der extrahiert werden soll.start
: Die Startposition für die Extraktion. Positive Werte zählen vom Anfang (1-basierter Index), während negative Werte vom Ende zählen.length
(optional): Die Anzahl der zu extrahierenden Zeichen. Wenn sie weggelassen wird, gibt die Funktion die Teilzeichenkette von der Startposition bis zum Ende der Zeichenkette zurück.
Wichtige Verhaltensweisen
- 1-Basierte Indizierung: Positionen beginnen bei 1. Zum Beispiel bezieht sich Position 1 auf das erste Zeichen.
- Negative Startwerte: Ein negativer
start
-Wert zählt vom Ende der Zeichenkette. Zum Beispiel bezieht sich-1
auf das letzte Zeichen. - Längenparameter: Wenn die angegebene
length
die verbleibenden Zeichen ab derstart
-Position überschreitet, gibt die Funktion die Teilzeichenkette von derstart
-Position bis zum Ende der Zeichenkette ohne Fehler zurück. - Null-Startwert: Die Angabe eines
start
-Wertes von 0 führt zu einer leeren Zeichenkette. - NULL-Behandlung: Wenn die
string
NULL
ist, gibt die FunktionNULL
zurück.
Praktische Beispiele
1. Extrahieren einer Teilzeichenkette von einer bestimmten Position
SELECT SUBSTRING('Hello, World!', 8);
Ergebnis: 'World!'
Dies extrahiert die Teilzeichenkette, beginnend mit dem 8. Zeichen bis zum Ende der Zeichenkette.
2. Extrahieren einer Teilzeichenkette mit einer bestimmten Länge
SELECT SUBSTRING('Database Management', 10, 6);
Ergebnis: 'Manage'
Dies extrahiert 6 Zeichen, beginnend mit dem 10. Zeichen.
3. Verwenden von Negativen Startwerten
SELECT SUBSTRING('Hello, World!', -6);
Ergebnis: 'World!'
Dies extrahiert die letzten 6 Zeichen der Zeichenkette.
4. Extrahieren aus Tabellenspalten
Annahme einer customers
-Tabelle mit einer customer_name
-Spalte:
SELECT SUBSTRING(customer_name, 1, 5) AS short_name FROM customers;
Dies ruft die ersten 5 Zeichen des Namens jedes Kunden ab, was für das Erstellen von Abkürzungen oder Codes nützlich sein kann.
5. Extrahieren mit der FROM
- und FOR
-Syntax
SELECT SUBSTRING('Learning SQL' FROM 10 FOR 3);
Ergebnis: 'SQL'
Diese alternative Syntax erzielt das gleiche Ergebnis wie die Standardsyntax.
Häufige Anwendungsfälle
- Datenbereinigung: Entfernen unerwünschter Präfixe oder Suffixe aus Zeichenketten.
- Parsen von Strukturierten Daten: Extrahieren bestimmter Felder aus Zeichenketten mit bekannten Formaten.
- Generieren von Abkürzungen: Erstellen kurzer Codes oder Initialen aus Namen oder Titeln.
- Analysieren von Text: Extrahieren sinnvoller Segmente aus größeren Textfeldern zur Analyse.
Bewährte Verfahren
- Eingabe Validieren: Stellen Sie sicher, dass sich die Parameter
start
undlength
innerhalb der Grenzen der Zeichenkette befinden, um unerwartete Ergebnisse zu vermeiden. - NULLs Behandeln: Seien Sie auf
NULL
-Werte in Ihren Daten vorbereitet und verwenden Sie Funktionen wieIFNULL()
, um diese elegant zu verwalten. - Mit Anderen Funktionen Kombinieren: Verwenden Sie
SUBSTRING()
in Verbindung mit Funktionen wieLOCATE()
oderCHAR_LENGTH()
für eine dynamischere Teilzeichenkettenextraktion. - Performance-Überlegungen: Achten Sie bei der Arbeit mit großen Datensätzen auf die Performance-Auswirkungen von Zeichenkettenmanipulationsfunktionen.
Verwandte Funktionen
SUBSTR()
undMID()
: Synonyme fürSUBSTRING()
; sie funktionieren identisch.SUBSTRING_INDEX()
: Extrahiert eine Teilzeichenkette aus einer Zeichenkette vor einer bestimmten Anzahl von Vorkommnissen eines Trennzeichens.LEFT()
undRIGHT()
: Extrahieren eine bestimmte Anzahl von Zeichen vom Anfang bzw. Ende einer Zeichenkette.REGEXP_SUBSTR()
: Extrahiert Teilzeichenketten, die einem regulären Ausdrucksmuster entsprechen.
Indem Sie die Funktion SUBSTRING()
verstehen und effektiv einsetzen, können Sie präzise und effiziente Zeichenkettenmanipulationen innerhalb Ihrer MySQL-Abfragen durchführen und so Ihre Datenverarbeitungsfähigkeiten verbessern.
FAQs
Ja, negative Startwerte zählen vom Ende der Zeichenkette.
Es wird eine leere Zeichenkette zurückgegeben.
Nein, sie sind funktional identisch und können austauschbar verwendet werden.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Mehrsprachige Unterstützung
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützen 6,94 Mio. Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollständig automatisierte CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für verwertbare Erkenntnisse.
Mühelose Skalierbarkeit und Hohe Leistung
- Automatische Skalierung zur mühelosen Bewältigung hoher Parallelität.
- Null Betriebsaufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ