Heim > Artikel > Backend-Entwicklung > Problem mit der MySQL-Fuzzy-Query-Anweisung in PHP?
MySQL-Fuzzy-Abfrageanweisung in PHP: 1. [%] steht für 0 oder mehr Zeichen, die mit jedem Zeichentyp und jeder Zeichenlänge übereinstimmen können. 2. [_] steht für jedes einzelne Zeichen, das mit jedem einzelnen Zeichen übereinstimmen kann Zeichen. ;3. [[]] gibt ein Zeichen, eine Zeichenfolge oder einen Bereich an und erfordert, dass das übereinstimmende Objekt eines davon ist.
MySQL-Fuzzy-Abfrageanweisungen in PHP sind:
Allgemeine Fuzzy-Abfrageanweisungen sind wie folgt:
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
In Bezug auf Bedingungen bietet SQL vier Übereinstimmungsmodi:
1, %: steht für beliebige 0 oder mehr Zeichen. Kann mit Zeichen jeder Art und Länge übereinstimmen. Wenn es sich um Chinesisch handelt, verwenden Sie bitte zwei Prozentzeichen (%%), um es auszudrücken.
Zum Beispiel findet
SELECT * FROM [user] WHERE u_name LIKE '%三%'
alle Datensätze mit „drei“ in u_name „Zhang San“, „Zhang Cat San“, „Three-legged Cat“, „Tang Sanzang“, usw. .
Wenn Sie außerdem Datensätze mit „三“ und „cat“ in u_name suchen müssen, verwenden Sie bitte die und-Bedingung
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
Wenn Sie
SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
verwenden, Sie können nach „Dreibeinige Katze“ suchen, aber „Zhang Cat San“, das die Bedingungen erfüllt, konnte nicht gesucht werden.
2, _: steht für ein beliebiges einzelnes Zeichen. Entspricht einem einzelnen beliebigen Zeichen. Es wird häufig verwendet, um die Zeichenlänge von Ausdrücken zu begrenzen:
Zum Beispiel findet
SELECT * FROM [user] WHERE u_name LIKE '_三_'
nur „Tang Sanzang“, also besteht u_name aus drei Zeichen und das mittlere Zeichen aus „三“;
Ein weiteres Beispiel ist
SELECT * FROM [user] WHERE u_name LIKE '三__';
, wenn der Name nur aus drei Zeichen besteht und das erste Zeichen „三“ ist; 3, [ ]: Gibt eines der in Klammern aufgeführten Zeichen an (ähnlich einem regulären Ausdruck). Geben Sie ein Zeichen, eine Zeichenfolge oder einen Bereich an und verlangen Sie, dass das übereinstimmende Objekt eines davon ist.
Zum Beispiel findet
SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
„Zhang San“, „Li San“, „Wang San“ (anstelle von „Zhang Li Wang San“); da [ ] eine Reihe von Zeichen (01234, abcde usw.) enthält, die als „0-4“, „a-e“ abgekürzt werden können
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
findet „alt 1“, „alt 2“, ..., „Alte 9“;
4, [^]: steht für ein einzelnes Zeichen, das nicht in Klammern aufgeführt ist. Sein Wert ist derselbe wie [], es ist jedoch erforderlich, dass das übereinstimmende Objekt ein anderes Zeichen als das angegebene Zeichen ist.
Zum Beispiel findet
SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
„Zhao San“, „Sun San“ usw., die nicht „Zhang“, „Li“, „Wang“ heißen;
schließt „Alt 1“ bis „Alt 4“ aus, sucht nach „Alt 5“, „Alt 6“, ... 5, wenn der Abfrageinhalt Platzhalter enthält Aufgrund von Platzhaltern können wir die Abfrageanweisung für die Sonderzeichen „%“, „_“ und „[“ nicht normal umsetzen. Die Sonderzeichen können jedoch normal abgefragt werden, wenn sie in „[ ]“ eingeschlossen sind. Auf dieser Grundlage haben wir die folgende Funktion geschrieben:SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
Verwandte Lernempfehlungen:
PHP-Programmierung vom Einstieg bis zur KompetenzDas obige ist der detaillierte Inhalt vonProblem mit der MySQL-Fuzzy-Query-Anweisung in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!