Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Mysql | Detaillierte Erklärung der Fuzzy-Abfrage mit Platzhaltern (wie, %, _)

Wildcard-Kategorien:

%Prozent-Platzhalter: Gibt an, dass jedes Zeichen beliebig oft vorkommen kann (kann 0 Mal vorkommen).

_Unterstrichener Platzhalter: Bedeutet, dass nur ein einziges Zeichen übereinstimmen kann, nicht mehr und nicht weniger, nur ein Zeichen.

Wie Operator:

Die Rolle von LIKE besteht darin, MySQL anzuweisen, dass das nachfolgende Suchmuster zum Vergleich Platzhalter statt direkter Gleichheitsübereinstimmung verwenden soll.

Hinweis: Wenn Sie den „Like“-Operator ohne universellen Matcher verwenden, ist das Ergebnis dasselbe wie =. SELECT * FROM products WHERE products.prod_name like '1000'; kann nur mit dem Ergebnis 1000 übereinstimmen, nicht mit JetPack 1000.

1)% Wildcard-Nutzung:

Stimmt mit Datensätzen überein, die mit „yves“ beginnen: (einschließlich Datensätze „yves“)

SELECT * FROM Produkte WHERE Produkte.Produktname wie "yves%";

Stimmt mit Datensätzen überein, die „yves“ enthalten (einschließlich Datensätze mit „yves“)

SELECT * FROM Produkte WHERE Produkte.Produktname wie '%yves%';

Stimmt mit Datensätzen überein, die mit „yves“ enden (einschließlich Datensätzen „yves“, ausgenommen Datensätze „yves“, d. h. Datensätze mit Leerzeichen nach yves, bitte beachten)

SELECT * FROM Produkte WHERE Produkte.Produktname wie '%yves';

2)_Wildcard-Verwendung:

SELECT * FROM Produkte WHERE Produkte.Produktname wie '_yves';

Das passende Ergebnis sind: Datensätze wie „yyves“.

SELECT * FROM Produkte WHERE Produkte.Produktname wie 'yves__';

Das passende Ergebnis ist: Datensätze wie „yvesHe“. (Ein Unterstrich kann nur mit einem Zeichen übereinstimmen, nicht mehr und nicht weniger)

Notiz:

Achten Sie auf die Groß-/Kleinschreibung. Bei der Verwendung von Fuzzy-Matching, also dem Abgleichen von Text, kann MySQL zwischen Groß- und Kleinschreibung unterscheiden oder nicht. Dieses Ergebnis hängt davon ab, wie der Benutzer MySQL konfiguriert. Wenn zwischen Groß- und Kleinschreibung unterschieden wird, kann ein Datensatz wie YvesHe nicht mit einer Übereinstimmungsbedingung wie „yves__“ übereinstimmen.

Beachten Sie das Leerzeichen am Ende. „%yves“ kann nicht mit einem Datensatz wie „heyves“ übereinstimmen.

Beachten Sie, dass die Platzhalter NULL und % mit jedem beliebigen Zeichen übereinstimmen können, jedoch nicht mit NULL. Das heißt, dass SELECT * FROM products WHERE products.prod_name like '%'; nicht mit Datensätzen übereinstimmt, bei denen products.prod_name NULL ist.

Tipps und Vorschläge:

Wie Sie sehen, sind MySQL-Platzhalter sehr nützlich. Diese Funktionalität hat jedoch ihren Preis: Die Verarbeitung von Platzhaltersuchen dauert im Allgemeinen länger als die anderen zuvor besprochenen Suchvorgänge. Hier sind einige Tipps, die Sie bei der Verwendung von Platzhaltern beachten sollten.

Verwenden Sie Platzhalter nicht zu häufig. Wenn andere Operatoren denselben Zweck erreichen können, sollten Sie andere Operatoren verwenden.

Wenn Sie Platzhalter verwenden müssen, verwenden Sie diese nicht am Anfang eines Suchmusters, es sei denn, dies ist unbedingt erforderlich. Die langsamste Suche erfolgt durch Platzieren des Platzhalters am Anfang des Suchmusters.

Beachten Sie sorgfältig die Platzierung der Platzhalterzeichen. Bei Platzierung an der falschen Stelle wird möglicherweise nicht die erwartete Zahl zurückgegeben.

Zusatzwissen: MySQL LIKE Fuzzy-Abfrage %_ Platzhalter fragt alle Daten ab

Ich habe vor kurzem eine Reihe von Paging-Abfragetests geschrieben. Die Abfrageergebnisse zeigten, dass die Verwendung der beiden Sonderzeichen _ % dazu führen würde, dass alle Daten abgefragt würden. Die Abfragebedingungen funktionierten nicht und die Ergebnisse entsprachen nicht den Erwartungen des Tests.

Später fand ich heraus, dass diese beiden Sonderzeichen Platzhalter in SQL LIKE-Abfragen sind und beliebige Zeichen darstellen können.

Schließlich kamen zwei Lösungen

1. Escapen Sie diese beiden Sonderzeichen, um

2. Verwenden Sie die interne Funktion INSTR, um die herkömmliche LIKE-Abfragemethode zu ersetzen, die schneller ist.

Die Funktion INSTR() gibt die Position des ersten Vorkommens einer Teilzeichenfolge innerhalb einer Zeichenfolge zurück. Wenn die Teilzeichenfolge nicht in str gefunden wird, gibt die Funktion INSTR() null (0) zurück.

Nachfolgend wird die Syntax der INSTR-Funktion erläutert.

Wählen Sie * vom Benutzer, wobei INSTR (Name, „Xiao Ming“);

Der obige Artikel Mysql | Detaillierte Erläuterung der Fuzzy-Abfrage mit Platzhaltern (wie %, %,_) ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Verwendung von MySQL-Fuzzy-Abfragen (regulär, Platzhalter, integrierte Funktion)
  • Zusammenfassung der MySQL-Datenbank-ähnlichen Anweisung zur Platzhalter-Fuzzy-Abfrage
  • Eine kurze Diskussion über die Implementierung von Fuzzy-Abfragen mit Platzhaltern in MySQL
  • Eine kurze Erläuterung zum Wildcard-Escape in MySQL-Fuzzy-Abfragen
  • MYSQL - Wichtige Lesehinweise Kapitel 8: Verwenden von Platzhaltern zum Filtern
  • Was bei der Verwendung von Platzhaltern in MySQL zu beachten ist
  • Detaillierte Einführung in die Verwendung von MySql wie Fuzzy-Abfrage-Platzhaltern
  • MySQL regulärer Ausdruck LIKE Platzhalter
  • MySQL-Platzhalter (erweiterte SQL-Filterung)

<<:  Verwendung des Linux-Befehls sed

>>:  Praktischer Bericht über die Entwicklung von Vue3- und TypeScript-Projekten

Artikel empfehlen

RGB-Farbtabellensammlung

RGB-Farbtabelle Farbe Englischer Name RGB 16 Farb...

Lösen Sie das Problem, dass ifconfig im Docker nicht verfügbar ist

Als ich kürzlich Docker lernte, stellte ich fest,...

Implementierung der Docker-Container-Verbindung und -Kommunikation

Die Portzuordnung ist nicht die einzige Möglichke...

Zusammenfassung der Mysql Hochleistungsoptimierungsfähigkeiten

Datenbank-Befehlsspezifikation Alle Datenbankobje...

Implementierung von Check Constraints in MySQL 8.0

Hallo zusammen, ich bin Tony, ein Lehrer, der nur...

JavaScript implementiert Informationen zur Kennwortfeldüberprüfung

In diesem Artikelbeispiel wird der spezifische Ja...

So verwenden Sie crontab zum Hinzufügen geplanter Aufgaben in Linux

Vorwort Das Linux-System wird durch den Systemdie...

Sieben Möglichkeiten zur Implementierung der Array-Deduplizierung in JS

Inhaltsverzeichnis 1. Verwenden von Set()+Array.f...

Verwenden Sie Javascript, um eine dynamische QQ-Registrierungsseite zu erstellen

Inhaltsverzeichnis 1. Einleitung 1. Grundlayout 2...

Detaillierte Darstellung des MySQL 5.7.33-Installationsprozesses

Inhaltsverzeichnis Download des Installationspake...

Docker verwendet Supervisor zur Verwaltung von Prozessvorgängen

Ein Docker-Container startet beim Start beispiels...