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!