Heim  >  Artikel  >  Backend-Entwicklung  >  Problem mit der MySQL-Fuzzy-Query-Anweisung in PHP?

Problem mit der MySQL-Fuzzy-Query-Anweisung in PHP?

coldplay.xixi
coldplay.xixiOriginal
2020-07-24 15:09:112974Durchsuche

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.

Problem mit der MySQL-Fuzzy-Query-Anweisung in PHP?

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 Kompetenz

Das 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!

Stellungnahme:
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
Vorheriger Artikel:Probleme mit dem PHP-WorkflowNächster Artikel:Probleme mit dem PHP-Workflow