Liste der Stringfunktionen
Mehr Funktionen als Datum und Uhrzeit – nur der String-Typ. Was in SQL durch die Typen CHAR(n) und VARCHAR(n) gegeben ist. Erinnern wir uns an die beliebtesten davon:
Funktion | Beschreibung | |
---|---|---|
1 | LÄNGE(str) | Gibt die Länge der übergebenen Zeichenfolge in Bytes zurück |
2 | CHAR_LENGTH(str) | Gibt die Länge der übergebenen Zeichenfolge in Zeichen zurück |
3 | LOCATE(substr,str), | Sucht nach einem Teilstring in einem String, ähnlich der Methode indexOf() |
4 | LOCATE(substr,str,pos) | Sucht nach einem Teilstring in einem String, der bei pos beginnt |
5 | CONCAT(str1,str2,...) | Verkettet mehrere Zeilen |
6 | SUBSTR(), SUBSTRING() | Gibt eine Teilzeichenfolge zurück, die aus einem Bereich von Zeichen besteht |
7 | UNTERE(str) | Konvertiert eine Zeichenfolge in Kleinbuchstaben |
8 | UPPER(str) | Konvertiert eine Zeichenfolge in Großbuchstaben |
9 | ERSETZEN() | Ersetzt einen Teilstring in einem String |
10 | PASSEN() | Überprüft, ob eine Zeichenfolge mit einem bestimmten Muster übereinstimmt |
elf | TRIM(str) | Schneidet leere Zeichen am Anfang und Ende einer Zeichenfolge ab |
12 | LTRIM(str) | Schneidet leere Zeichen am Anfang einer Zeichenfolge ab |
13 | RTRIM(str) | Schneidet leere Zeichen am Ende einer Zeichenfolge ab |
14 | TO_BASE64(str) | Konvertiert einen String in Base64 |
15 | FROM_BASE64(str) | Konvertiert einen String von Base64 |
Ich habe die Funktionen bewusst in kleine Gruppen gruppiert, um das Verständnis für die Arbeit mit ihnen zu erleichtern. Im Folgenden betrachten wir eine Funktion aus jeder Gruppe. Eine vollständige Liste der Funktionen zum Arbeiten mit Strings finden Sie in der offiziellen Dokumentation .
Lassen Sie uns die Zeichenfolge konvertieren
Befassen wir uns zunächst mit den einfachsten Funktionen, die einen String einfach in eine etwas andere Form umwandeln. Konvertieren Sie beispielsweise eine Zeichenfolge in Groß- und Kleinschreibung. Im Allgemeinen ähnelt ihr Verhalten den gleichen Funktionen in der Java-Sprache.
Deshalb gebe ich nur eine Tabelle mit ein paar Beispielen.
# | Anfrage | Ergebnis |
---|---|---|
1 | LÄNGE AUSWÄHLEN ('text') | 4 |
2 | LÄNGE AUSWÄHLEN („Hallo“) | 12 |
3 | SELECT LOWER („Hallo“) | Hallo |
4 | SELECT UPPER („Hallo“) | HALLO |
5 | SELECT SUBSTR ('Hallo', 2, 3) | Fluss |
6 | SELECT SUBSTR („Hallo, wie geht es dir?“, 8) | Wie geht es Ihnen? |
Die Funktionen funktionieren wie erwartet, genau wie ihre Gegenstücke aus dem JDK.
Einziger Vorbehalt: In der ersten Zeile ist das Ergebnis 4, nicht 8. Die Sache ist, dass in der Anfrage 1 Byte (ASCII-Kodierung) zum Kodieren lateinischer Zeichen verwendet wird . Wenn Sie jedoch mit Daten aus der Datenbank arbeiten, hängt die Länge der Zeichenfolge von den Codierungseinstellungen der Datenbank ab . Bei der Arbeit mit der Datenbank werden Sie viele Überraschungen erleben :)
Komplexe Aktionen mit Strings
Schauen wir uns nun komplexere Dinge bei der Arbeit mit Strings an. Was würdest du dir einfallen lassen...
Lassen Sie uns Aufgaben aus der Aufgabentabelle anzeigen. Wenn die Aufgabenfrist bereits abgelaufen ist, fügen Sie der Aufgabenbeschreibung das Wort ABGELAUFEN hinzu!
Hört sich interessant an. Obwohl wir komplexe Bedingungen noch nicht gelernt haben, vereinfachen wir die Aufgabe ein wenig. Schreiben wir einfach eine Abfrage, die eine Liste vergangener Aufgaben anzeigt. Fügen Sie dem Titel jedoch unbedingt das Wort „ABGELAUFEN!“ hinzu. .
Dazu müssen wir die CONCAT-Funktion verwenden:
SELECT CONCAT( 'EXPIRED! ', name) FROM task
WHERE deadline < CURDATE()
Das Ergebnis dieser Abfrage wird sein:
concat('ABGELAUFEN! ', Name) |
---|
ABGELAUFEN! Beheben Sie einen Fehler im Frontend |
Empfehlung. Wenn Sie die Daten lediglich in eine etwas andere Form konvertieren müssen, kann dies auch auf Java-Codeebene erfolgen. Wenn Sie jedoch SQL-serverseitige String-Funktionen (innerhalb von WHERE) verwenden möchten, können Sie darauf definitiv nicht verzichten.
GO TO FULL VERSION