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

Implementierung der Vorschaufunktion mehrerer Bild-Uploads auf HTML-Basis

Ich habe vor kurzem ein Skript zum Hochladen mehr...

MySQL deaktiviert die Überprüfung der Kennwortstärke

Informationen zur Überprüfung der Kennwortstärke:...

Docker-Fallanalyse: Erstellen eines Redis-Dienstes

Inhaltsverzeichnis 1 Mount-Verzeichnisse und Date...

Durch das flexible Layout können Unterelemente ihre eigene Höhe beibehalten

Beim Verwenden des Flex-Layouts werden Sie festst...

Erläuterung der Docker Compose-Netzwerkeinstellungen

Grundlegende Konzepte Standardmäßig erstellt Comp...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (5)

Verwandte Artikel: Anfänger lernen einige HTML-Ta...

So verwenden Sie vite zum Erstellen einer Vue3-Anwendung

1. Installation Tipp: Derzeit gibt es kein offizi...

So kompilieren Sie den Linux-Kernel

1. Laden Sie die erforderliche Kernel-Version her...

vue.js lädt Bilder entsprechend der Bild-URL herunter

Als ich kürzlich an einem Frontend-Docking-Funkti...

Verwenden Sie js, um js-Funktionen in Iframe-Seiten aufzurufen

In letzter Zeit habe ich jeden Tag an meinen Absch...

Tipps zur Verwendung von Vue-Elementen und Nuxt

1. Konvertierung des Übermittlungsformats für die...

10 Gründe, warum Linux immer beliebter wird

Linux wird von immer mehr Benutzern geliebt. Waru...

So verwenden Sie MySQL-Stresstest-Tools

1. MySQLs eigenes Stresstest-Tool – Mysqlslap mys...