MySQL Spickzettel: String Funktionen

Eingetragen bei: MySQL | 4

Mit den String Funktionen in MySQL (bzw. generell in SQL) lassen sich einige nützliche Dinge tun, die man sonst vielleicht im Programmcode machen müsste. Im folgenden werde ich die am häufigsten benötigten erläutern.

In den Beispielen verwende ich meistens die folgende Tabelle:

id username lastname firstname
1 mueller Peter Müller
2 schneider Andreas Schneider
3 smith Jack Smith

 

left() und right()

Mit left() und right() kann man eine bestimmte Anzahl Zeichen einer Zelle auslesen. Entweder beginnend von links oder rechts. Beispielsweise wollen wir die Initialen unserer Benutzer ausgeben. Wir möchten dazu den ersten Buchstaben des Vornamens und die ersten beiden Buchstaben des Nachnamens verwenden.

Die Abfrage

liefert das Ergebnis:

P
A Sc
J Sm

 

concat()

Das obere Ergebnis möchten wir natürlich nicht in 2 Ergebnisspalten haben. Mit concat() führen wir die 2 einzelnen Strings zusammen.

liefert dieses Ergebnis:

PMü
ASc
JSm

 

upper() und lower()

Mit den Befehlen upper() und lower() bzw. ucase() und lcase() werden Strings in Groß- bzw. Kleinbuchstaben ausgegeben.

PETER müller
ANDREAS schneider
JACK smith

 

trim()

trim() entfernt alle Leerzeichen, die sich am Anfang bzw. Ende eines Strings befinden. So kann z.B. beim Einfügen eines Strings in die Datenbank sicherstellen, dass unnötige Leerzeichen, die ein Benutzer eingegeben hat, nicht gespeichert werden.

Das Feld username enthält nur den String ‚doe‘ ohne Leerzeichen.

1 mueller Peter Müller
2 schneider Andreas Schneider
3 smith Jack Smith
4 doe John Doe

 

Optional kann man auch über die Parameter LEADING und TRAILING festlegen ob nur am Anfang oder Ende des Strings die Zeichen entfernt werden. Über den dritten (ebenfalls optionalen Parameter), kann man auch andere Zeichen als Leerzeichen entfernen lassen:

STRINGxxx

 

like, not like und strcmp()

Mit like, not like und strcmp() und lassen sich String vergleichen. strcmp liefert 0 zurück wenn die beiden Strings gleich sind. Wenn das erste Argument kleiner als das zweite ist wird -1 sonst 1 zurückgegeben.

1 mueller Peter Müller

 

Mit like und not like lassen sich Muster überprüfen. Dabei lassen sich einzelne Zeichen durch _ und mehrere Zeichen durch % ersetzen. like

findet alle Strings der Spalte username, die mit einem s beginnen:

2 schneider Andreas Schneider
3 smith Jack Smith

 

insert()

Mit insert() kann man eine bestimmte Zahl von Zeichen durch einen String ersetzen. Das erste Argumente ist der Ausgangsstring, dann folgt die Startposition, gefolgt von der Anzahl der zu ersetzenden Zeichen. Zuletzt kommt der String der eingesetzt werden soll.

Pabar

 

replace()

Während insert() eine bestimmte Anzahl Zeichen von einer Startposition an ersetzt, ersetzt replace einen Teilstring, der als Argument übergeben wird.

Dies ist kurzer Text.

 

locate()

Mit locate lässt sich die Position eines Teilstrings innerhalb eines Strings ermitteln. Mit dem optionalen dritten Argument kann man die Startposition festlegen.

Ergebnis: 1

Ergebnis: 16

 

space()

Falls man mal viele Leerzeichen benötigt:

A                         B

 

reverse()

Der Name spricht für sich selbst. reverse() liefert die Zeichen eines Strings in umgekehrter Reihenfolge zurück.

sträwrov

 

substring() bzw. substr()

Von substring() gibt es zwei verschiedene Varianten um Teilstrings als Ergebnis zurück zu bekommen.

substring(str,pos)

Selektiert den String ab der angegebenen Position:

345678

substring(str,pos,len),

Selektiert eine bestimmte Anzahl Zeichen des Strings ab der angegebenen Position :

3456

substring_index()

substring_index() hat drei Argumente: Den zu durchsuchenden String, den Suchstring und die Anzahl der Treffer ab der, der Teilstring zurückgeliefert werden soll. Dabei bedeutet eine negative Zahl, dass alles rechts der Trefferposition (von rechts gezählt) und eine positive Zahl, alles links der Trefferposition (von links gezählt) zurückgeliefert wird.

http://www.de.example

 

de.example.com

4 Antworten

  1. Tolle Zusammenfassung. Ich lerne gerade auf eine Klausur, und habe gerne drübergelesen.

  2. Wow, ich bin sehr begeistert von Ihrer Arbeit.
    Das hat mir sehr geholfen.

Hinterlasse einen Kommentar