Heim >Backend-Entwicklung >PHP-Problem >So implementieren Sie Fuzzy-Abfragen in PHP

So implementieren Sie Fuzzy-Abfragen in PHP

coldplay.xixi
coldplay.xixiOriginal
2020-08-20 09:46:473951Durchsuche

So implementieren Sie eine Fuzzy-Abfrage in PHP: 1. Verwenden Sie den SQL-Matching-Modus und der Operator muss LIKE oder NOT LIKE verwenden. Beim Matching wird die Groß-/Kleinschreibung nicht beachtet. 2. Verwenden Sie den regulären Ausdrucks-Matching-Modus im Abgleich irgendwo im Feld.

So implementieren Sie Fuzzy-Abfragen in PHP

【Verwandte Lernempfehlung: php-Programmierung(Video)】

PHP-Methode zur Implementierung von Fuzzy-Abfragen:

Methode 1: SQL-Übereinstimmungsmuster

1. Verwenden Sie SQL-Übereinstimmungsmuster. Sie können die Operatoren = oder != nicht verwenden, sondern die Operatoren LIKE oder NOT LIKE. Verwenden Sie den SQL-Matching-Modus. MYSQL bietet 2 Platzhalterzeichen.

  • stellt eine beliebige Anzahl beliebiger Zeichen dar (einschließlich 0)

    %

  • stellt ein beliebiges einzelnes Zeichen dar

    _

  • 3. Verwenden Sie den SQL-Matching-Modus, wenn das Matching-Format keines der beiden oben genannten Platzhalterzeichen enthält. Eins , der Effekt seiner Abfrage entspricht = oder! =

4. Verwenden Sie den SQL-Abgleichsmodus. Beim Abgleich wird die Groß-/Kleinschreibung nicht beachtet.

#查询用户名以某个字符开头的用户
#查询用户名以字符'l'开头的用户: l%
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名以某个字符结尾的用户
#查询用户名以字符'e'结尾的用户:e%
SELECT * FROM user WHERE username LIKE 'e%';
#查询用户名包含某个字符的用户
#查询用户名包含字符'o'的用户:%o%
SELECT * FROM user WHERE username LIKE '%o%';
#查询包含三个字符的用户
SELECT * FROM user WHERE username LIKE '___';
#查询用户名第二个字符为o的用户:_o%
SELECT * FROM user WHERE username LIKE '_o%';

Methode 2: Abgleichsmodus für reguläre Ausdrücke oder mehr Zeichen

davor bedeutet Übereinstimmung mit einer beliebigen Anzahl von Entspricht einem beliebigen Buchstaben

[0-9] Entspricht einer beliebigen Zahl.

* [0-9]* Entspricht einer beliebigen Zahl einer beliebigen Zahl

x*

[a-z]* Entspricht einer beliebigen Anzahl von Buchstaben
  • bedeutet Mit einem bestimmten Zeichen oder einer bestimmten Zeichenfolge beginnen
  • bedeutet, mit dem Buchstaben a zu beginnen
  • bedeutet, mit einem bestimmten Zeichen oder einer bestimmten Zeichenfolge zu enden

  • bedeutet, mit dem Buchstaben s zu enden

    Verwenden Sie das verwendete Vergleichsmuster für reguläre Ausdrücke. Der Operator ist:
  • oder

    (RLIKE oder NOT RLIKE)
  • Hinweis: Vergleichsmuster für reguläre Ausdrücke, sein regulärer Ausdruck erscheint an einer beliebigen Stelle im Übereinstimmungsfeld,

    sein Muster wird abgeglichen und es ist nicht erforderlich, es auf beiden Seiten einzufügen. Ein Platzhalter
Wenn nur der Platzhalter zum Abgleichen verwendet wird, zeigt das Übereinstimmungsmuster an, dass es größer oder gleich N ist.

^Wie ist der obige Satz zu verstehen?

Das heißt^a

... Entspricht Daten, die größer oder gleich 3 Zeichen sind

$... Entspricht Daten, die größer oder gleich 4 Zeichen sind

#Benutzer abfragen, deren Benutzername mit dem Zeichen beginnt l: ^l; s$

# Schreiben regulärer Ausdrücke

SELECT * FROM user WHERE username REGEXP '^l';
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE 'l%';
#查询用户名正好是三个字符的用户:^...$;
#sql匹配模式写法:
SELECT * FROM user WHERE username LIKE '___';
#正则表达式写法
SELECT * FROM user WHERE username REGEXP '^...$';

Verwandte Empfehlungen: REGEXPVideokurs zum Programmieren NOT REGEXP

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Fuzzy-Abfragen 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