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

JavaScript-Grundlagenobjekte

Inhaltsverzeichnis 1. Gegenstand 1.1 Was ist ein ...

Beispiel für eine Nginx-Cache-Konfiguration

Beim Entwickeln und Debuggen einer Webanwendung s...

CentOS 7.x Docker verwendet die Overlay2-Speichermethode

Bearbeiten Sie /etc/docker/daemon.json und fügen ...

Detaillierte Erklärung von Cgroup, dem Kernprinzip von Docker

Das leistungsstarke Tool cgroup im Kernel kann ni...

Reagieren Sie auf den nativen ScrollView-Pulldown-Aktualisierungseffekt

In diesem Artikel wird der spezifische Code des P...

Einführung in die MySQL-Optimierung für die Unternehmensproduktion

Im Vergleich zu anderen großen Datenbanken wie Or...

Eine kurze Diskussion darüber, ob zu viele MySQL-Datenabfragen OOM verursachen

Inhaltsverzeichnis Auswirkungen eines vollständig...

CocosCreator Typescript macht Tetris-Spiel

Inhaltsverzeichnis 1. Einleitung 2. Mehrere wicht...

Erstellen Sie ein SSL-Zertifikat, das in nginx und IIS verwendet werden kann

Inhaltsverzeichnis Erstellen eines SSL-Zertifikat...

Wissen Sie, warum Vue-Daten eine Funktion sind?

Erklärung auf der offiziellen Website: Wenn eine ...