Implementierung einer Fuzzy-Abfrage wie %% in MySQL

Implementierung einer Fuzzy-Abfrage wie %% in MySQL

1, %, steht für beliebige 0 oder mehr Zeichen. Es kann mit Zeichen beliebigen Typs und beliebiger Länge übereinstimmen. In einigen Fällen werden zur Darstellung chinesischer Zeichen zwei Prozentzeichen (%%) verwendet.

Beispiel: SELECT * FROM [user] WHERE u_name LIKE '%三%'

Alle Datensätze mit dem Buchstaben „drei“ in u_name, wie „Zhang San“, „Zhang Mao San“, „Dreibeinige Katze“, „Tang Sanzang“ usw. werden gefunden.

Wenn Sie außerdem Datensätze finden müssen, die sowohl "三" als auch "猫" in u_name enthalten, verwenden Sie die Bedingung und

SELECT * FROM [Benutzer] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%' 

Wenn Sie SELECT * FROM [user] WHERE u_name LIKE '%三%猫%' verwenden

Sie können zwar nach „三脚猫“ suchen, jedoch nicht nach „张猫三“, was den Kriterien entspricht.

2, _: steht für ein beliebiges einzelnes Zeichen. Entspricht einem einzelnen beliebigen Zeichen, das häufig verwendet wird, um die Zeichenlänge der Ausdrucksanweisung zu begrenzen:

Beispiel: SELECT * FROM [Benutzer] WHERE u_name LIKE '_三_'
Suchen Sie nur nach „唐三藏“ und anderen Namen, deren u_name aus drei Zeichen besteht und der mittlere Buchstabe „三“ ist.

Beispiel: SELECT * FROM [user] WHERE u_name LIKE '三__'; findet nur „三脚猫“ und andere Namen mit drei Zeichen, wobei das erste Zeichen „三“ ist;

3. [ ]: steht für eines der in der Klammer aufgeführten Zeichen (ähnlich wie bei regulären Ausdrücken). Gibt ein Zeichen, eine Zeichenfolge oder einen Bereich an. Die Übereinstimmung muss mit einem dieser Werte übereinstimmen.

Beispielsweise findet SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' "张三", "李三", "王三" (aber nicht "张李王三");

Wenn in [ ] eine Reihe von Zeichen enthalten ist (z. B. 01234, abcde usw.), kann dies als „0-4“, „ae“ abgekürzt werden.

SELECT * FROM [Benutzer] WHERE u_name LIKE '老[1-9]' findet "老1", "老2", ..., "老9"; 

4. [^]: steht für ein einzelnes Zeichen, das nicht in der Klammer aufgeführt ist. Sein Wert ist derselbe wie [], aber es erfordert, dass das übereinstimmende Objekt ein anderes Zeichen als die angegebenen Zeichen ist.

Beispielsweise findet SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' „赵三“, „孙三“ usw., die nicht „张“, „李“ oder „王“ heißen.

SELECT * FROM [Benutzer] WHERE u_name LIKE '老[^1-4]'; schließt "老1" bis "老4" aus und sucht nach "老5", "老6", ...

5. Wenn der Abfrageinhalt Platzhalter enthält

Aufgrund des Platzhalters können unsere Abfrageanweisungen für die Sonderzeichen "%", "_" und "[" nicht normal umgesetzt werden. Wir können jedoch normal abfragen, indem wir die Sonderzeichen in "[ ]" einschließen. Darauf aufbauend schreiben wir folgende Funktion:

Funktion sqlencode(str) str=ersetzen(str,"';","';';") 
str=ersetzen(str,"[","[[]") ';

Dieser Satz muss am Anfang stehen str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function

Dies ist das Ende dieses Artikels über die Implementierung von like%% Fuzzy-Abfragen in MySQL. Weitere relevante MySQL-Inhalte zu like%% Fuzzy-Abfragen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Einführung in die Verwendung von MySql wie Fuzzy-Abfrage-Platzhaltern
  • So lösen Sie das Problem der langsamen Geschwindigkeit von MySQL wie bei Fuzzy-Abfragen
  • Eine Zusammenfassung der Fuzzy-Abfrage von MySQL wie
  • So optimieren Sie die langsame Like-Fuzzy-Abfrage in MySQL

<<:  Natives JS zum Erzielen von Laufschrifteffekten

>>:  Nginx-Konfiguration und -Kompatibilität mit der Codeanalyse der HTTP-Implementierung

Artikel empfehlen

Beispiel für einen Fork- und Mutex-Lock-Prozess im Linux-Multithreading

Inhaltsverzeichnis Frage: 1. Erster Versuch 2. Ra...

Semantik: Ist HTML/XHTML wirklich standardkonform?

<br />Originaltext: http://jorux.com/archive...

Verschönerung der Dualsystem-Boot-Schnittstelle für Win10 + Ubuntu20.04 LTS

Effektanzeige Die eingebaute Boot-Oberfläche ist ...

Detailliertes Tutorial zur Installation von Python 3.8.1 unter Linux

Dieses Beispiel nimmt die Installation von Python...

Kleines Problem mit dem Abstand zwischen Label und Eingabe im Google Browser

Erst Code, dann Text Code kopieren Der Code lautet...

Angular Cookie Lese- und Schreibvorgangscode

Lese- und Schreibvorgänge bei Angular Cookies, de...

Problem beim Testen des nicht autorisierten Zugriffs auf Zookeeper

Inhaltsverzeichnis Vorwort Erkennen des geöffnete...

Grundlegendes Einführungstutorial zu MySQL-Partitionstabellen

Vorwort In einem aktuellen Projekt mussten wir ei...

So konfigurieren Sie Nginx zur Unterstützung von IPv6 unter Linux

1. Überprüfen Sie, ob das vorhandene Nginx IPv6 u...

Detaillierte Erklärung der Winkelinhaltsprojektion

Inhaltsverzeichnis Einzelne Inhaltsprojektion Mul...