Database
 sql >> Datenbank >  >> RDS >> Database

So verwenden Sie LIKE in SQL

Problem:

Sie möchten einen Teilstring finden, der mit einem Muster in einem String übereinstimmt.

Beispiel:

Unsere Datenbank hat eine Tabelle namens Kunde mit Daten in den folgenden Spalten:id , first_name , last_name , und city .

id Vorname Nachname Stadt
1 Alan Watson Madrid
2 Lisa Schwarz Singapur
3 Laura Williams Seattle
4 Mailand Ziegel Seoul

Sehen wir uns einige Beispiele für den Musterabgleich in SQL an.

Beispiel 1:

Lassen Sie uns den Vornamen, den Nachnamen und die Stadt jedes Kunden anzeigen, dessen Stadtname mit dem Buchstaben „S“ beginnt.

Lösung:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
Nachname Vorname Stadt
Lisa Schwarz S Singapur
Mailand Ziegel S eule
Laura Williams S essen

Wir haben den Platzhalter % verwendet, der null oder mehr unbekannte Zeichen darstellt. Dieser Platzhalter kann überall im String verwendet werden.

Beispiel 2:

Lassen Sie uns den Vornamen, den Nachnamen und die Stadt jedes Kunden anzeigen, dessen Stadtname genau fünf Zeichen enthält.

Lösung:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Hier ist das Ergebnis:

Nachname Vorname Stadt
Mailand Ziegel Seoul

Der Unterstrich-Platzhalter kann verwendet werden, um ein einzelnes unbekanntes Zeichen darzustellen. Wenn wir also fünf davon hintereinander verwenden, können wir alle Zeichenfolgen darstellen, die fünf Zeichen lang sind. In unserem Beispiel ist die einzige Stadt, die dieser Beschreibung entspricht, Seoul.

Beispiel 3:

Lassen Sie uns den Vornamen, den Nachnamen und die Stadt jedes Kunden anzeigen, dessen Stadt mit dem Buchstaben „S“ beginnt und den Buchstaben „o“ als drittletztes Zeichen hat.

Lösung:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Hier ist das Ergebnis:

Nachname Vorname Stadt
Lisa Schwarz S ingapo wieder
Mailand Ziegel S eo ul

Die Abfrage hat nur zwei Datensätze zurückgegeben:Lisa Black aus S ingapo re und Milan Brick von S eo Ul. Diese Städte entsprechen dem vorgegebenen Muster. Hier haben wir beide Wildcards kombiniert, um ein spezifischeres Muster zu generieren:Alle Zeichenfolgen, die mit einem Großbuchstaben 'S' beginnen und danach beliebig viele andere Zeichen enthalten, solange das drittletzte Zeichen ein Kleinbuchstabe 'o' ist. '

Diskussion:

Wenn Sie Datensätze auswählen möchten, in denen eine Zeichenfolge einem bestimmten Muster entspricht, können Sie ein LIKE verwenden -Klausel als Bedingung in einem WHERE Klausel. Nach WHERE , listen Sie den Namen der Spalte auf (z. B. city ) gefolgt von einem LIKE -Klausel, die das Zeichenfolgenmuster angibt (z. B. 'S%o__' ) zu suchen.

Wie wir in den Beispielen gesehen haben, können Sie zwei Sonderzeichen verwenden, die als Platzhalter bekannt sind um unbekannte Zeichen darzustellen:

  • Der Platzhalter '%' steht für null oder mehr Zeichen.
  • Der Platzhalter '_' steht für ein beliebiges einzelnes Zeichen.

Sie können diese Platzhalter kombinieren, um einige wirklich starke Ergebnisse zu erzielen. Sie können auch mehr als ein LIKE verketten Zustand. Schließlich können Sie den NOT verwenden -Operator, um Strings zu finden, die nicht sind dem vorgegebenen Muster entsprechen.