Home - Operatoren www.sqldocu.com
zurück vor



LIKE Operator


Beschreibung
top
Mit dem LIKE Operator kann nach ähnlichen Mustern gesucht werden. Durch die Rechtschreibreform wird statt "Straße" "Strasse" geschrieben. Der LIKE Operator ermöglicht es, sowohl nach "Straße" als auch "Strasse" zu suchen.
Bei der Suche werden sogenannte Platzhalter (Globalsymbole, white cards) verwendet. Als Platzhalter dient das Prozentzeichen % und der Unterstrich _
Zur Suche nach ähnlichen Begriffen können auch Reguläre Ausdrücke herangezogen werden. Sie bieten wesentlich mehr Möglichkeiten als der LIKE Operator, dafür sind sie wesentlich komplexer zu erlernen. MySQL bietet hierfür den Operator regexp (ist genau genommen eine Funktion). Wir gehen auf reguläre Ausdrücke nicht näher ein und beschränken uns auf die Beschreibung des LIKE Operators


Syntax
top
WHERE
SpaltenName
NOT   optional  
LIKE "Suchbegriff"
ESCAPE "ESCAPE-Zeichen"   optional  

  Globalsymbole/Platzhalter (die im Suchbegriff verwendet werden können)

% ... steht für beliebiges Zeichen und beliebige Anzahl (auch 0 Zeichen).
"Stra%e" steht für Strasse,Straße,Strae,usw.
_ ... steht für genau ein beliebiges Zeichen.
"Stra_e" steht für Straße,Strafe,usw. Strasse wird mit "Stra_e" nicht gefunden!


Beispiele:
SELECT vorname FROM emailadressen WHERE gewicht LIKE "5_"
SELECT vorname FROM emailadressen WHERE gewicht NOT LIKE "5_"
UPDATE emailadressen SET vorname='Katherina' WHERE nachname LIKE "K%"
UPDATE emailadressen SET nachname='Müller-Becker' WHERE vorname LIKE "_i%"


Beispiel Tabelle:
top
Sie wird in mehreren Beispielen verwendet um SQL besser darstellen zu können.
TabelleName: emailAdressen
Die Tabelle emailAdressen besteht aus 4 Spalten und 5 Reihen
Spalte1 hat den Namen vorname.
Spalte2 hat den Namen nachname
Spalte3 hat den Namen email
Spalte4 hat den Namen gewicht

Spaltenname vorname nachname email gewicht
Reihe 1 Michaela König michi@yahoo.de 71
Reihe 2 Kati Müller kati@hotmail.de 48
Reihe 3 Conny Schmid conny3@hotmail.com 63
Reihe 4 Linda Becker linda@hotmail.de 56
Reihe 5 Kati Auer kati@hotmail.se 52
Reihe 6 Uwe Auer uwe_a@hotmail.tse 142



Suche mit dem Prozentzeichen %
top
SELECT vorname, nachname FROM emailAdressen
WHERE vorname LIKE '%a'

Das Prozentzeichen steht für kein, ein oder mehrere Zeichen. Mit '%a' werden daher alle Vornamen gefunden die mit dem Buchstaben "a" enden.

Ergebnistabelle:
Michaela König
Linda Becker

Achtung: Kati wird nicht gefunden. Die folgende Anweisung zeigt alle Vornamen an, die den Buchstaben "a" enthalten:

SELECT vorname, nachname FROM emailAdressen
WHERE vorname LIKE '%a%'



Ergebnistabelle:
Michaela König
Kati Müller
Linda Becker
Kati Auer

Tabelle emailAdressen anzeigen
PHP Syntax     PERL Syntax


Suche mit dem Unterstrich _
top
SELECT vorname, nachname,email FROM emailAdressen
WHERE email LIKE 'kati@hotmail._e'

Der Unterstrich steht für genau ein Zeichen. Mit 'kati@hotmail._e' wird kati@hotmail.de, kati@hotmail.se usw. gefunden aber nicht uwe_a@hotmail.tse.

Ergebnistabelle:
Kati Müller kati@hotmail.de
Kati Auer kati@hotmail.se

Tabelle emailAdressen anzeigen
PHP Syntax     PERL Syntax


Suche mit Escape Zeichen
top
SELECT vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%?_%'
ESCAPE '?'

Wir wollen alle Personen ausgeben, deren Email Adresse einen Untertrich _ enthält. Da der Unterstrich ein Platzhalter ist, wird er im Suchbegriff als Globalsymbol und nicht als Unterstrich interpretiert. Um dies zu umgehen kann die Option ESCAPE verwendet werden. Durch '%?_%' werden alle Email Adressen gefunden die einen Unterstrich enthalten.

Ergebnistabelle:
Uwe Auer uwe_a@hotmail.tse

Durch die Definition des Fragezeichens in der Escape Klausel wird:
?_ als _ interpretiert
?? als ? interpretiert
?% als % interpretiert
Um nach allen Email Adressen zu suchen die ein Fragezeichen enthalten lautet die Anweisung
vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%??%'
ESCAPE '?'
Diese Anweisung macht wenig Sinn, denn die nächste Anweisung ohne Escape Klausel liefert das gleiche Resultat
vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%?%'
Um nach allen Email Adressen zu suchen die ein Prozentzeichen enthalten lautet die Anweisung
vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%?%%'
ESCAPE '?'
Tabelle emailAdressen anzeigen
PHP Syntax     PERL Syntax


Suche mit Prozentzeichen % und Unterstrich _
top
SELECT vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%@hotmail._e'

Die Anweisung liefert alle Mail Adressen die auf @hotmail.de, @hotmail.se, @hotmail.fe usw. enden. hotmail.tse wird nicht gefunden, da der Unterstrich _ für exakt ein Zeichen steht .

Ergebnistabelle:
Kati Müller kati@hotmail.de
Linda Becker linda@hotmail.de
Kati Auer kati@hotmail.se

Tabelle emailAdressen anzeigen
PHP Syntax     PERL Syntax


top