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.