| Home - Operatoren | www.sqldocu.com | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| zurück | vor | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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
Globalsymbole/Platzhalter (die im Suchbegriff verwendet werden können)
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%"
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
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:
SELECT vorname, nachname FROM emailAdressen WHERE vorname LIKE '%a%' Ergebnistabelle:
PHP Syntax PERL Syntax
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.
Tabelle emailAdressen anzeigen
Ergebnistabelle:
PHP Syntax PERL Syntax
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.
Tabelle emailAdressen anzeigen
Ergebnistabelle:
?_ 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
Diese Anweisung macht wenig Sinn, denn die nächste Anweisung ohne Escape Klausel
liefert das gleiche ResultatWHERE email LIKE '%??%' ESCAPE '?'
vorname, nachname,email FROM emailAdressen
Um nach allen Email Adressen zu suchen die ein Prozentzeichen enthalten lautet die AnweisungWHERE email LIKE '%?%'
vorname, nachname,email FROM emailAdressen
WHERE email LIKE '%?%%' ESCAPE '?' PHP Syntax PERL Syntax
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 .
Tabelle emailAdressen anzeigen
Ergebnistabelle:
PHP Syntax PERL Syntax
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||