Die PHP+MySQL-Fuzzy-Abfragefunktion ist für PHP sehr wichtig, um die Datenbank zu betreiben. In diesem Artikel werden die zugehörigen Kenntnisse ausführlich erläutert.
Allgemeine Fuzzy-Abfrageanweisungen lauten wie folgt:
SELECT field FROM table WHERE bestimmtes Feld Wie Bedingung
Unter diesen stellt SQL vier Übereinstimmungsmodi für Bedingungen bereit:
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.
Beispiel: SELECT * FROM [user] WHERE u_name LIKE '%三%'
behandelt u_name als „Zhang San“, „Zhang Cat San“, „Three-legged Cat“, „Tang Sanzang“ und So weiter. Finden Sie alle Datensätze von „drei“ heraus.
Wenn Sie außerdem Datensätze mit „三“ und „cat“ in u_name suchen müssen, verwenden Sie bitte die Bedingung „and“
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE ' % cat%'
Wenn Sie SELECT * FROM [user] WHERE u_name LIKE '%三%cat%' verwenden
Sie können zwar nach „dreibeinige Katze“ suchen, aber nicht nach „Zhang Cat San“ das den Bedingungen entspricht.
2, _: steht für ein beliebiges einzelnes Zeichen. Entspricht einem einzelnen beliebigen Zeichen. Es wird häufig verwendet, um die Zeichenlänge des Ausdrucks zu begrenzen :
Zum Beispiel: SELECT * FROM [user] WHERE u_name LIKE '_三_'
Nur suchen " „Tang Sanzang“, so dass u_name drei Zeichen hat und das mittlere Zeichen „三“ ist;
Ein weiteres Beispiel ist SELECT * FROM [user] WHERE u_name LIKE '三';
Finde nur „drei-“ legged cat“ Auf diese Weise hat der Name drei Zeichen und das erste Zeichen ist „三“;
3, [ ]: stellt eines der in Klammern aufgeführten Zeichen dar (ähnlich wie
regulärer Ausdruck ). Geben Sie ein Zeichen, eine Zeichenfolge oder einen Bereich an und verlangen Sie, dass das übereinstimmende Objekt eines davon ist. Beispiel: SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
findet „Zhang San“, „Li San“, „Wang San“ (anstelle von „Zhang Li Wang] „王三“);
Wenn [ ] eine Reihe von Zeichen enthält (01234, abcde usw.), kann es als „0-4“, „a-e“ abgekürzt werden
SELECT * FROM [user] WHERE u_name LIKE 'Old[1-9]'
findet "Old 1", "Old 2",..., "Old 9"
4, [^ ]: bedeutet nicht in Klammern. Ein einzelnes Zeichen innerhalb einer Spalte. Sein Wert ist derselbe wie [], es ist jedoch erforderlich, dass das übereinstimmende Objekt ein anderes Zeichen als das angegebene Zeichen ist.
Beispiel: SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
findet „Zhao San“, „Sun San“ usw.;
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
schließt „Alt 1“ bis „Alt 4“ aus und sucht nach „Alt 5“, „Alt 6“, ...
5, wenn der Abfrageinhalt das
Platzhalterzeichen
aufgrund des Platzhalterzeichens enthält, fragen wir das
Sonderzeichen
ab. Anweisungen wie „% „, „_“ und „[“ können nicht normal implementiert werden, Sonderzeichen können jedoch normal abgefragt werden, wenn sie in „[ ]“ eingeschlossen sind. Auf dieser Grundlage haben wir die folgende Funktion geschrieben:
function sqlencode(str) str=replace(str,"[","[[]") '此句一定要在最前 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function
Verwandte Empfehlungen:
So kopieren und verschieben Sie Dateien über PHPÜber jQuery-Effekte – im Zusammenhang mit dem Ausblenden und Anzeigen WissenVerwandte Wissenspunkte zu SQL-NULL-WertenDas obige ist der detaillierte Inhalt vonVerwandte Kenntnisse über die PHP+MySQL-Fuzzy-Abfragefunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!