Verwenden von LIKE bei der Suche ohne Berücksichtigung der Groß-/Kleinschreibung
-
Groß-/Kleinschreibung nicht berücksichtigende Suche mit
LIKE
in MySQL - Groß- und Kleinschreibung beachtende Suche in MySQL
- Reguläre Ausdrücke in MySQL
Dieser Tutorial-Artikel zeigt Ihnen, wie Sie den Operator LIKE
verwenden, um eine Spalte zu durchsuchen. Wir zeigen Ihnen, wie Sie dies richtig verwenden, um alle Ergebnisse einzubeziehen, die bestimmte Kriterien erfüllen, unabhängig davon, ob die Werte in Groß- oder Kleinschreibung vorliegen.
Groß-/Kleinschreibung nicht berücksichtigende Suche mit LIKE
in MySQL
Beim Durchsuchen einer Tabelle wird beim Durchsuchen einer Tabelle immer der Operator LIKE
nach WHERE
verwendet.
Dies ist besonders nützlich, wenn Sie nach einem Begriff suchen, bei dem Sie sich nicht sicher sind, z. B. ein Präfix oder Buchstabenmuster, oder wenn Sie mehrere Instanzen einbeziehen möchten, die eine bestimmte Bedingung erfüllen.
Fügen Sie nach einer SELECT
-Anweisung, die angibt, welche Spalte in einer Tabelle Sie durchsuchen möchten, den LIKE
-Operator gefolgt von den folgenden Platzhaltern hinzu:
- Der Platzhalter
%
sucht nach Werten, die mit einem nachgestellten Buchstaben beginnen. Ebenso wird nach Werten gesucht, die mit einem Buchstaben enden, wenn das%
-Zeichen vor dem Buchstaben steht. - Der Platzhalter Unterstrich (
_
) wird verwendet, um die Suche nach Verwendung des Zeichens%
auf einen Wert einzuschränken.
Sie können das Obige auf verschiedene Weise verwenden, um unterschiedliche Ergebnisse zu erzielen. Das folgende Beispiel zeigt, wie Sie mit beiden Platzhaltern nach einem Begriff suchen.
CREATE TABLE car_models (
brand TEXT NOT NULL,
model TEXT NOT NULL
);
INSERT INTO car_models VALUES ('Toyota', 'Camry');
INSERT INTO car_models VALUES ('toyota', 'Corolla');
INSERT INTO car_models VALUES ('toyota', 'corolla');
INSERT INTO car_models VALUES ('Ford', 'Prefect');
INSERT INTO car_models VALUES ('Ford', 'fiesta');
SELECT * FROM car_models WHERE car_models.model LIKE '%cor%'
Das Obige gibt nur die Zeilen zurück, die die Buchstaben cor
in dieser Reihenfolge enthalten. Durch das Beginnen und Beenden mit dem %
-Zeichen wurde die Suche auf Wörter mit Buchstaben in dieser Reihenfolge beschränkt.
| brand | model |
|-------|---------|
|toyota | Corolla |
|toyota | corolla |
Die Suche ignorierte die Großschreibung und suchte nur nach den Werten, die die Kriterien erfüllten. Sie könnten auch die folgende Anweisung ausführen, die alle Modelle zurückgibt, die den Buchstaben c
enthalten.
SELECT * FROM car_models WHERE car_models.model LIKE '%C%'
Ausgabe:
| brand | model |
|-------|---------|
|Toyota | Camry |
|toyota | Corolla |
|toyota | corolla |
|Ford | Prefect |
Im Folgenden wurden alle Modelle mit dem Buchstaben c
zurückgegeben. Wenn Sie jedoch genauer sein möchten, können Sie das Zeichen %
nur nach dem Buchstaben c
platzieren, um Modelle zurückzugeben, die mit c
beginnen.
SELECT * FROM car_models WHERE car_models.model LIKE 'C%'
Ausgabe:
| brand | model |
|-------|---------|
|Toyota | Camry |
|toyota | Corolla |
|toyota | corolla |
Groß- und Kleinschreibung beachtende Suche in MySQL
Wenn Sie eine Suche mit Berücksichtigung der Groß-/Kleinschreibung wünschen, können Sie BINARY
vor dem Operator LIKE
hinzufügen, und die Suche erfolgt unter Berücksichtigung der Groß- und Kleinschreibung.
SELECT * FROM car_models WHERE car_models.model LIKE BINARY 'c%'
Ausgabe:
| brand | model |
|-------|---------|
|toyota | corolla |
Alle Modelle, die mit einem großen C
beginnen, wurden von der Suche ausgeschlossen.
Reguläre Ausdrücke in MySQL
Es lohnt sich zu lernen, wie man reguläre Ausdrücke für spezifischere Suchen verwendet. Dazu gehören mehr Sonderzeichen wie das %
-Zeichen, mit denen Sie bei einer Suche mehr tun können.
Es besteht aus dem *
-Zeichen, das ein Szenario zulässt, in dem der darauf folgende Wert mehrfach oder gar nicht vorkommen kann. Das +
-Zeichen hingegen gibt an, dass das folgende Zeichen mindestens einmal vorkommen muss.
Die REGEXP
und REGEXP_LIKE()
können auch in MySQL verwendet werden, um bestimmte Muster zu marschieren.