Heim > Backend-Entwicklung > PHP-Tutorial > MySQL reguläre Matching-Fuzzy-Abfrage für ein bestimmtes Feld

MySQL reguläre Matching-Fuzzy-Abfrage für ein bestimmtes Feld

silencement
Freigeben: 2023-04-08 10:54:02
nach vorne
3466 Leute haben es durchsucht

MySQL reguläre Matching-Fuzzy-Abfrage für ein bestimmtes Feld

Wenn wir ein bestimmtes Feld abfragen, möchten wir manchmal nur ein bestimmtes Datenelement abgleichen, zum Beispiel, wenn wir alle Schlüsselwörter dieses Artikels abfragen möchten, um zu sehen, ob ein bestimmtes Schlüsselwort existiert, wir benötigen oft Matching. Lassen Sie uns erklären, wie ein bestimmter Schlüsselwortwert abgeglichen und abgefragt wird

Die Syntax der SQL-Fuzzy-Abfrage lautet

"SELECT Column FROM Table WHERE Column LIKE ';pattern' ;".

SQL bietet vier Übereinstimmungsmodi:

1 % steht für beliebige 0 oder mehr Zeichen. Die folgende Anweisung:

SELECT * FROM user WHERE name LIKE ';%三%';

ändert den Namen in „Zhang San“, „Three-legged Cat“, „Tang Sanzang“. " usw. Finden Sie alle Zeichen mit „drei“;

2. _ steht für ein beliebiges einzelnes Zeichen. Anweisung:

SELECT * FROM user WHERE name LIKE ';_三_';

Suchen Sie nur „Tang Sanzang“, dessen Name drei Zeichen hat und das mittlere Zeichen „三“ ist ;

SELECT * FROM user WHERE name LIKE ';三__';

Suchen Sie nur nach „dreibeinige Katze“, sodass der Name drei Zeichen hat und das erste Zeichen „三“ ist ;

3. [ ] steht für eines der in Klammern aufgeführten Zeichen (ähnlich einem regulären Ausdruck). Aussage:

SELECT * FROM user WHERE name LIKE ';[张李王]三';

findet „Zhang San“, „Li San“, „Wang San“ (und nicht). „Zhang Li Wang San“);

Wenn [ ] eine Reihe von Zeichen enthält (01234, abcde usw.), kann es als „0-4“, „a-e“ abgekürzt werden

SELECT * FROM user WHERE name LIKE ';老[1-9]';

findet „alt 1“, „alt 2“, ..., „alt 9“; > Wenn Sie nach dem Zeichen „-“ suchen, geben Sie es bitte zuerst ein: „;张三[-1-9]“;

4 steht für ein einzelnes Zeichen, das nicht in Klammern aufgeführt ist. Anweisung:

SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';

findet „“, dessen Nachname nicht „Zhang“, „Li“ oder „Wang“ ist „ Zhao San“, „Sun San“ usw.;

SELECT * FROM user WHERE name LIKE ';老[^1-4]';

schließt „老1“ aus „老4“ „Suchen Sie nach „Old 5“, „Old 6“,..., „Old 9“.

! Das Letzte ist der Punkt!

Aufgrund von Platzhaltern können unsere Abfrageanweisungen für Sonderzeichen „%“, „_“, „[“, „‘;“ nicht normal implementiert werden und die Sonderzeichen werden in „[ ]“ eingeschlossen normal abgefragt. Darauf aufbauend schreiben wir die folgende Funktion:

function sqlencode(str)

str=replace(str,"';","';';")

str =replace(str,"[","[[]") ';Dieser Satz muss an erster Stelle stehen

str=replace(str,"_","[_]")

str=replace(str,"%","[%]")

sqlencode=str

Endfunktion

Das obige ist der detaillierte Inhalt vonMySQL reguläre Matching-Fuzzy-Abfrage für ein bestimmtes Feld. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:www.liqingbo.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage