Heim  >  Artikel  >  Datenbank  >  MySQL reguläre Matching-Fuzzy-Methode zum Abfragen eines bestimmten Felds

MySQL reguläre Matching-Fuzzy-Methode zum Abfragen eines bestimmten Felds

coldplay.xixi
coldplay.xixinach vorne
2020-06-11 09:10:452532Durchsuche

MySQL reguläre Matching-Fuzzy-Methode zum Abfragen eines bestimmten Felds

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

Wenn wir ein bestimmtes Feld abfragen, manchmal nur Wenn Wenn wir beispielsweise alle Schlüsselwörter in diesem Artikel abfragen möchten, um zu sehen, ob ein bestimmtes Schlüsselwort vorhanden ist, müssen wir häufig einen Abgleich durchführen. Lassen Sie uns erklären, wie ein bestimmter Schlüsselwortwert abgeglichen und abgefragt wird

SQL-Fuzzy-Abfrage Die Syntax 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 ';%三%';
gibt die Namen „Zhang San“, „Three-legged Cat“, „Tang Sanzang“ usw. ein out;

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 dessen mittleres Zeichen „三“ ist;
SELECT * FROM user WHERE name LIKE ';三__';
Finden Sie nur „dreibeinige Katze“, deren Name drei Zeichen hat und das erste Zeichen „三“ ist;

3 in Klammern (ähnlich einem regulären Ausdruck). Anweisung:
SELECT * FROM user WHERE name LIKE ';[张李王]三';
findet „Zhang San“, „Li San“, „Wang San“ (anstelle von „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 '; Old[1-9]';
findet „old1“, „old2“,...,“old9“;
Wenn Sie das „-“-Zeichen finden möchten, geben Sie es bitte zuerst ein: ' ;张三[-1-9]';

4. stellt ein einzelnes Zeichen dar, das nicht in Klammern aufgeführt ist. Anweisung:
SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';
findet „Zhao San“ und „Sun“, die nicht die Nachnamen „Zhang“, „Li“ und „Wang“ haben " „Drei“ und so weiter;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
schließt „alt 1“ bis „alt 4“ aus, um „alt 5“ zu finden, „alt 6“, ..., „Alt 9“.

! Das Letzte ist der Punkt!
Aufgrund von Platzhaltern kann unsere Abfrage nach Sonderzeichen „%“, „_“, „[“ und „‘;“ nicht normal umgesetzt werden. Die Sonderzeichen können jedoch normal abgefragt werden, indem man sie mit „[ ] einschließt. " . Darauf aufbauend schreiben wir die folgende Funktion:

function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str ," [","[[]") ';Dieser Satz muss zuerst kommen
str=replace(str,"_","[_]")
str=replace(str,"%", "[%]")
sqlencode=str
Endfunktion

Empfohlenes Tutorial: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonMySQL reguläre Matching-Fuzzy-Methode zum Abfragen eines bestimmten Felds. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:liqingbo.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen