LIKE
Abfragen verfeinern
Mit LIKE suchst du nicht nach exakten Werten, sondern nach Mustern in Textspalten. Das ist ideal, wenn du z. B. alle Kunden finden willst, deren Name mit „M“ beginnt oder die das Wort „GmbH“ enthalten. LIKE steht im WHERE-Teil und arbeitet mit Platzhaltern (Wildcards).
Syntax
SELECT Spalten FROM Tabelle WHERE Spalte LIKE 'Muster';
Die wichtigsten Platzhalter:
%steht für beliebig viele (auch null) Zeichen._steht für genau ein Zeichen.
Beispiel: Namen, die mit „M“ beginnen
SELECT Name, Stadt FROM Kunden WHERE Name LIKE 'M%';
| Name | Stadt |
|---|---|
| Müller GmbH | Berlin |
| Maier & Co | Köln |
Beispiel: Enthält „AG“ irgendwo
SELECT Name FROM Kunden WHERE Name LIKE '%AG%';
Mit NOT LIKE drehst du die Bedingung um – etwa alle Kunden, deren Stadt nicht auf „burg“ endet: WHERE Stadt NOT LIKE '%burg'.
Dialekt-Hinweis: Groß-/Kleinschreibung
Ob LIKE Groß- und Kleinschreibung beachtet, hängt vom System ab. MySQL ignoriert sie bei den üblichen Collations standardmäßig. PostgreSQL ist mit LIKE case-sensitiv – dort nutzt du ILIKE für eine unabhängige Suche.
Stolperfalle
Beginnt dein Muster mit % (z. B. '%AG%'), kann die Datenbank keinen Index nutzen und muss alle Zeilen durchsuchen. Bei großen Tabellen wird das langsam. Such ein echtes Zeichen oder eine Volltextsuche, wenn die Performance zählt. Willst du außerdem ein wörtliches % oder _ finden, musst du es mit ESCAPE maskieren.