Der SQL LIKE Operator sucht in einer Spalte nach Zeichenreihenfolgen.

SELECT Spalte-A 
FROM Tabelle
WHERE Spalte-B LIKE Wert; 
SQL Like

Der SQL LIKE Operator kann nach Silben, Anfangsbuchstaben, Endbuchstaben etc. in Spalten suchen, indem eine sogenannte Wildcard an die Zeichenreihenfolge gehängt wird. Wildcards sind Platzhalter mit verschiedenen Funktionen. Je nach Datenbank-System (MySQL, Oracle, …) gibt es Wildcards mit unterschiedlichen Effekten. Die zwei Wildcards, die beim LIKE Operator am häufigsten verwendet werden, sind „%“ und „_“. Diese werden an eine Zeichenfolge angehangen und erweitern sie damit. 

Die %-Wildcard ist ein Platzhalter für 0 oder mehr Zeichen. Der Befehl LIKE ‚Max%‘ würde die Namen Max, Maxi und Maximilian finden.

Die _-Wildcard ist ein Platzhalten für genau ein Zeichen. Der Befehl LIKE ‚Schmi__‘ würde Schmidt, Schmitt und Schmitz finden.

Der LIKE-Operator funktioniert nur bei String-Datentypen wie CHAR und VARCHAR. Zahlen und Datumsangaben müssen vorher mit der CONVERT( )-Funktion in einen Text umgewandelt werden.

SQL LIKE - Beispiel (Prozent % Wildcard)

Möchte ein Steuerberater aus einer Tabelle ausschließlich deutsche Umsatzsteuer-Identifikationsnummern herausfiltern, eignet sich der Befehl:

SELECT * 
FROM Steuern 
WHERE Umsatzsteuer-ID LIKE 'DE%'; 

Damit werden alle Umsatzsteuer-Identifikationsnummern ausgegeben, die mit DE beginnen. Wie viele Zeichen darauf folgen ist unwichtig, es können 0 oder mehr sein.

In einem weiteren Anwendungsfall möchte ein Unternehmen alle E-Mail-Adressen von Google zählen:

SELECT COUNT(*) 
FROM Mailliste 
WHERE E-Mails LIKE '%@gmail.%''; 

Mit dem ersten %-Zeichen werden die Namen der Adressen und mit dem zweiten %-Zeichen die Länderendungen der gmail-Domain angefügt.

Möchte man alle Mitarbeiter ausgeben, die zwischen 20 und 29 Jahren alt sind, eignet sich die ‚ _ ‚ -Wildcard. Damit wird ausschließlich ein Zeichen angefügt:

SQL LIKE - Beispiel (Unterstrich _ Wildcard)

SELECT * 
FROM Mitarbeiterliste 
WHERE CONVERT(VARCHAR, Jahre_Alt) LIKE '2_'; 

SQL LIKE - Beispiel (Beide Wildcards)

Meistens werden Alter nicht in Tabellen gespeichert, da sie sich regelmäßig ändern. Stattdessen nutzt man Geburtsdaten. Der folgende Befehl eignet sich, wenn man alle Menschen, die zwischen dem 01.01.2000 und 31.12.2009 geboren wurden, ausgeben möchte:

SELECT * 
FROM Geburtsliste
WHERE CONVERT(VARCHAR, Geburtsdatum) LIKE '%.200_'; 

Mit dem %-Zeichen werden alle Tage und Monate angefügt. Mit dem _-Zeichen können die Zahlen zwischen 0 und 9 eingesetzt werden. Damit werden alle Geburtsdaten in diesem Zeitraum abgefragt.

ARTIKEL TEILEN

Hast du Fragen? Hinterlasse einen Kommentar!