mysql like tutorial with syntax
In diesem Tutorial wird der Mustervergleich mit dem MySQL LIKE-Operator erläutert:
Der Mustervergleich ist eine wichtige Funktion in fast allen Programmiersprachen wie Java / C # / Python usw., die hauptsächlich die Verwendung regulärer Ausdrücke für den Mustervergleich mit einer bestimmten Zeichenfolgeneingabe nutzen.
MySQL bietet einen benutzerfreundlichen Operator namens LIKE, mit dem die String-Werte mit bestimmten Mustern abgeglichen werden können und der zum Abfragen großer Datenmengen nützlich ist.
Was du lernen wirst:
MySQL LIKE
Syntax:
Der LIKE-Operator wird zusammen mit der WHERE-Klausel in einer SELECT-Abfrage verwendet.
In einer einfachen Abfrage sieht die Syntax wie folgt aus.
SELECT {column_names} (*) FROM {table_name} WHERE {column_with_string_value} LIKE {match_pattern}
Verschiedene Komponenten dieser Syntax werden wie folgt erklärt:
- {Spaltennamen}: Dies sind die Spaltennamen, die als Ausgabe der SELECT-Abfrage angezeigt werden sollen. Diese Werte können * für die Auswahl aller Spalten oder durch Kommas getrennte Namen einzelner Spalten sein.
- {Tabellenname}: Dies ist der Name der Tabelle, in der die Abfrage ausgeführt werden muss.
- {column_with_string_value}: Dies ist die Spalte, deren Werte für das angegebene Muster ausgeführt werden müssen. Bitte beachten Sie, dass jeder Vergleich für eine Spalte durchgeführt wird, die in String konvertiert werden kann.
- {match_pattern}: Dies ist der Übereinstimmungsausdruck, mit dem Spaltenwerte verglichen werden müssen. Eine Stichprobe von Übereinstimmungsmustern kann sein: SM% ’. Dies würde allen Spaltenwerten entsprechen, die mit SM beginnen. Beispiel: SMART, SMELL, SMOKE usw.
Ähnlich wie bei dieser Abfrage kann der LIKE-Operator auch bei komplexen Abfragen mit JOINS usw. verwendet werden, da der LIKE nur ein Vergleichsoperator ist und überall dort verwendet werden kann, wo ein Spaltenwertvergleich möglich ist.
Hinweis: Ähnlich wie bei LIKE können wir auch die negierte Variante verwenden, die 'NOT LIKE' ist. In diesem Fall geben die Abfragen mit dem Operator 'NOT LIKE' keine übereinstimmenden Ergebnisse zurück, sondern Ergebnisse, die nicht übereinstimmen.
MySQL-Übereinstimmungsmuster
LIKE Operator kann zusammen mit zwei Arten von Mustern verwendet werden. Diese sind in der folgenden Tabelle aufgeführt:
Muster | |
---|---|
% (Prozentsatz) | Entspricht einer beliebigen Anzahl von Zeichen (einschließlich überhaupt keinem Zeichen) |
_ (Unterstrich) | Entspricht einem einzelnen Zeichen |
Jetzt werden wir einige Beispiele sehen, die beide Muster verwenden.
% Übereinstimmungsmuster
% pattern wird verwendet, wenn Sie nach oder vor der Platzierung 0 oder mehr Zeichen abgleichen möchten.
Zum Beispiel: Wenn Sie eine Zeichenfolge 'it' aus einer Spalte mit Mitarbeiternamen abgleichen möchten. Angenommen, es gibt Namen wie Amit, Anchit, Arpit, Nikita, Smith usw. Wir können sehen, dass alle Namen den Teilstring 'it' haben. Ihre Positionierung ist jedoch anders.
Angenommen, der Spaltenname lautet Namen und der Tabellenname ist student_names.
Verwenden Sie die folgenden Beispielskripten zur Datenerstellung, um die Datenbank zu füllen:
CREATE TABLE student_names (name VARCHAR(100)); INSERT INTO student_names VALUES('Amit'),('Ankit'),('Smith'),('Nikita'),('Mohit');
Mal sehen, wie wir das% Match-Muster verwenden können.
SELECT * FROM student_names WHERE name LIKE '%it%'
Ausgabe:
Name |
---|
Amit |
Ankit |
Schmied |
Nikita |
Mohit |
Dies bedeutet nun, dass es mit einer Zeichenfolge übereinstimmen kann, die an jeder Stelle die Teilzeichenfolge 'it' enthält, und dass vor und nach der Übereinstimmung eine beliebige Anzahl von Zeichen vorhanden sein kann. Sie können sehen, dass alle übereinstimmenden Namen als Ausgabe zurückgegeben werden.
Schreiben Sie die Abfrage neu, damit nur die Namen übereinstimmen, die mit dem Teilstring 'it' enden.
SELECT * FROM student_names WHERE name LIKE '%it'
Hier haben wir also das nachfolgende '%' -Zeichen entfernt und die 'it' -String am Ende platziert. Dieses Muster würde eine beliebige Anzahl von Zeichen vor 'it' zulassen, aber der String sollte mit dem Teilstring 'it' enden.
Ausgabe der obigen Abfrage:
Name |
---|
Amit |
Ankit |
Mohit |
Hinweis: Hierbei ist zu beachten, dass bei dem mit dem Zeichen '%' genannten Muster die Groß- und Kleinschreibung nicht berücksichtigt wird. Für das obige Beispiel hätten wir anstelle von '% it' '% IT' oder '% It' verwenden können, aber die Ausgabe wäre immer noch dieselbe geblieben.
_Match Pattern
Schauen wir uns nun an, wie wir das Übereinstimmungsmuster '_' verwenden können. Wir wissen, dass '_' genau ein Zeichen zulässt.
Angenommen, wir möchten alle 5 Buchstabennamen aus derselben Tabelle (student_names) abfragen.
Um in diesem Fall den Mustervergleich '_' zu verwenden, haben wir zusammen mit 'LIKE Pattern' fünf _ (Unterstriche) angegeben, die nur den Namen entsprechen, die 5 Zeichen lang sind.
SELECT * FROM student_names WHERE name LIKE '_____'
Ausgabe:
Name |
---|
Ankit |
Mohit |
Schmied |
Schauen wir uns ein anderes Beispiel an. Angenommen, wir möchten alle 5 Buchstabennamen finden, die mit der Teilzeichenfolge 'it' enden.
SELECT * FROM student_names WHERE name LIKE '___it'
Hier haben wir 3 '_' (Unterstriche) und den tatsächlichen Teilstring verwendet, der angepasst werden muss.
Ausgabe:
Name |
---|
Ankit |
Mohit |
Schmied |
% Und _ Pattern Matcher kombinieren
In diesem Abschnitt werden wir diskutieren, wie wir die% und _ Mustervergleicher miteinander abgleichen können.
Was ist der beste kostenlose Computerreiniger?
Angenommen, wir möchten alle Namen finden, die eine Teilzeichenfolge 'it' haben und genau 2 Zeichen nach dem Wort 'it' enthalten können.
SELECT * FROM student_names WHERE name LIKE '%it_'
Hier haben wir sowohl% als auch _ Übereinstimmungsmuster kombiniert, um die genaue Übereinstimmung zu finden.
Ausgabe:
Name |
---|
Schmied |
Nikita |
Verwenden von NOT LIKE
NOT LIKE ist die genaue Negation dessen, was der LIKE-Operator zurückgibt. d.h. es werden alle Datensätze / Zeilen zurückgegeben, die nicht mit dem Musterübereinstimmungsausdruck übereinstimmen.
Beispiel: Angenommen, wir möchten alle Namen finden, die nicht 4 Zeichen lang sind.
SELECT * FROM student_names WHERE name NOT LIKE '____'
Ausgabe:
Name |
---|
Ankit |
Schmied |
Nikita |
Mohit |
Sie können in der obigen Ausgabe sehen, dass nur die Namen zurückgegeben werden, die nicht 4 Zeichen lang sind.
Verwenden von MySQL LIKE With ESCAPE Character
Hier werden wir sehen, wie wir ESCAPE-Zeichen zusammen mit dem Pattern Matcher verwenden können.
Angenommen, in einer hypothetischen Situation haben wir Namen, die tatsächlich% und _ Zeichen enthalten, und wir möchten diese Namen finden, dann müssen wir tatsächlich mit% & _ übereinstimmen. Dies kann mit einem Escape-Zeichen erreicht werden.
Hinweis: Der Standardwert des Escape-Zeichens ist '' (Backslash).
Fügen Sie den student_names-Tabellen einige Daten hinzu, die Namen mit% und _ enthalten.
INSERT INTO student_names VALUES('Darre%n'),('Julia_Roberts'),('Dane_Sherman%');
Im Folgenden finden Sie einige Beispiele, um dies besser zu verstehen.
# 1) Suchen Sie alle Namen mit einem% -Zeichen.
SELECT * FROM student_names WHERE name LIKE '%\%%'
Ausgabe:
Name |
---|
Darre% n |
Dane_Sherman% |
#zwei) Suchen Sie alle Namen mit einem _-Zeichen
SELECT * FROM student_names WHERE name LIKE '%\_%'
Ausgabe:
Name |
---|
Julia Roberts |
Dane_Sherman% |
In beiden obigen Beispielen können Sie sehen, dass wir ein Escape-Zeichen verwendet haben, um die% - und _ -Zeichen zu erwähnen - d. H. Um ein% -Zeichen selbst abzugleichen, haben wir ein Escape-Zeichen vor dem% -Zeichen verwendet - d. H. Wie '\%'
Verwenden eines Escape-Charakters Ihrer Wahl
Versuchen wir nun, das vorherige Beispiel zu erweitern.
Mit MySQL können Sie Ihr eigenes ESCAPE-Zeichen angeben, das MySQL beim Ausführen der Mustervergleichssuche verwenden soll.
Versuchen wir, das Escape-Zeichen auf '!' Anstelle des Standardwerts '' zu aktualisieren.
SELECT * FROM student_names WHERE name LIKE '%!_%' ESCAPE '!'
Ausgabe:
Name |
---|
Julia Roberts |
Dane_Sherman% |
Im obigen Beispiel haben wir das Escape-Zeichen auf '!' Überschrieben und dasselbe im Pattern-Matcher '%! _%' Verwendet - wo wir ein '_' -Zeichen im Namen abgleichen möchten.
Häufig gestellte Fragen
F # 1) Was bedeutet %% in SQL?
Antworten: '%%' wird mit nichts Bestimmtem übereinstimmen. Es entspricht nur 1% Charakter. Wenn Sie das Zeichen '%' selbst im Spaltenwert abgleichen möchten, können Sie es mit einem Escape-Zeichen verwenden, das den Standardwert '' hat.
Angenommen, Sie möchten mit einem Spaltenwert mit einem '%'-Zeichen übereinstimmen, dann können Sie eine Musterübereinstimmung wie folgt schreiben: WIE'% %% '(beachten Sie einen zusätzlichen Backslash vor dem mittleren Prozentzeichen (%).
F # 2) Was ist ein Platzhalter in MySQL?
Antworten: MySQL LIKE Operator arbeitet mit 2 Platzhalterzeichen in MySQL, um verschiedene Arten des Mustervergleichs zu erzielen.
Diese sind:
- %. - Dies würde mit einer beliebigen Anzahl von Zeichen übereinstimmen (einschließlich Null).
- _ - Dies würde genau einem Zeichen entsprechen
F # 3) Wie schreibe ich eine LIKE-Abfrage in MySQL?
Antworten: LIKE ist ein einfacher Operator, der im Allgemeinen zusammen mit der WHERE-Klausel in einer SELECT-Abfrage verwendet wird. Es wird verwendet, um die Spaltenwerte mit dem angegebenen Muster abzugleichen.
wie man float in java deklariert
Beispiel: Angenommen, es gibt eine Tabelle mit employee_details und eine Spalte mit dem Namen address, die die Hausnummer, den Straßennamen usw. enthält. Sie möchten alle Mitarbeiter ermitteln, deren Adresse als 'Oxford Lane' definiert ist.
Wir können den LIKE-Operator verwenden, um eine solche Abfrage zu schreiben.
SELECT * FROM employee_details WHERE address LIKE '%Oxford Lane%'
Bitte beachte, dass Die String-Muster sind Groß- und Kleinschreibung nicht berücksichtigen während mit dem angegebenen Übereinstimmungsausdruck abgeglichen wird.
F # 4) Wie kann ich zusammen mit dem LIKE-Operator ein anderes Escape-Zeichen angeben?
Antworten: MySQL bietet eine Möglichkeit, ein benutzerdefiniertes Escape-Zeichen anzugeben, das das Standardzeichen überschreibt, d. H.
Hier ist ein Beispiel, bei dem das Escape-Zeichen für die Ausführung der Abfrage in '!' Geändert wird.
SELECT * FROM employee_details WHERE address LIKE '%!_%' ESCAPE '!'
In der obigen Abfrage haben wir '!' Als Escape-Zeichen erwähnt und dasselbe im Übereinstimmungsausdruck verwendet.
F # 5) Wie kann ein tatsächliches% oder _ Zeichen mit dem LIKE Operator abgeglichen werden?
Antworten: Die Zeichen wie% und _ sind spezielle Platzhalterzeichen, die, wenn sie tatsächlich als Teil des Strings abgeglichen werden müssen, maskiert werden sollten.
Das Standard-Escape-Zeichen ist '' und sollte unmittelbar vor der Erwähnung des Platzhalterzeichens verwendet werden.
Angenommen, wir möchten das Zeichen '_' mit einem bestimmten Spaltenwert abgleichen, dann können wir den Übereinstimmungsausdruck als - schreiben MÖGEN '%\_%'
Fazit
In diesem Tutorial haben wir die verschiedenen Möglichkeiten kennengelernt, wie wir den LIKE-Operator (oder die negierte Version, d. H. NOT LIKE) verwenden können.
Wir haben auch die unterstützten Platzhalterzeichen, d. H. _ Und%, besprochen und wie sie maskiert werden können, wenn sie Teil des zu durchsuchenden / übereinstimmenden Strings sein müssen.
Der LIKE-Operator ist eine leistungsstarke Funktion von MySQL und wird im Allgemeinen zum Filtern von Datensätzen beim Abfragen großer Datenmengen verwendet.
Literatur-Empfehlungen
- MySQL Create View Tutorial mit Codebeispielen
- MySQL UNION - Umfassendes Tutorial mit Union-Beispielen
- MySQL Tutorial zum Erstellen von Tabellen mit Beispielen
- MySQL Insert Into Table - Syntax und Beispiele für Insert-Anweisungen
- Unix Cat-Befehlssyntax, Optionen mit Beispielen
- C # Regex Tutorial: Was ist ein regulärer C # -Ausdruck?
- C ++ Regex Tutorial: Reguläre Ausdrücke in C ++ mit Beispielen
- Java Regex Tutorial mit Beispielen für reguläre Ausdrücke