ホームページ >バックエンド開発 >PHPの問題 >PHPでファジークエリを実装する方法

PHPでファジークエリを実装する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-20 09:46:473957ブラウズ

PHP でファジー クエリを実装する方法: 1. SQL マッチング モードを使用します。演算子は LIKE または NOT LIKE を使用する必要があります。マッチングする場合、大文字と小文字は区別されません。2. 正規表現マッチング モード、その正規表現を使用します。数式は、一致するフィールドの任意の場所に表示されます。

PHPでファジークエリを実装する方法

[関連する学習の推奨事項: php プログラミング (ビデオ)]

php はぼかしを実現しますクエリ メソッド:

メソッド 1: SQL マッチング パターン

1. SQL マッチング パターンを使用します。演算子 = や演算子は使用できません。 ! = ただし、演​​算子 LIKE または NOT LIKE を使用します;

2. SQL マッチング モードを使用して、MYSQL は 2 種類のワイルドカード文字を提供します。

  • % は、任意の数の任意の文字 (0 を含む) を表します。

  • 任意の文字を表します。単一文字

3. SQL マッチング モードを使用します。マッチング形式に上記の 2 つのワイルドカード文字が含まれていない場合、クエリの効果は = または! と同等になります。 =

4. SQL マッチング パターンを使用します。マッチングの際、大文字と小文字は区別されません

#查询用户名以某个字符开头的用户
#查询用户名以字符'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%';
方法 2: 正規表現マッチング パターン

ワイルドカード (正規表現)

#.

任意の 1 文字と一致します

#*その前の 0 文字以上の文字と一致します

x * は、任意の数の x 文字と一致することを意味します

  • [..] 角括弧内の任意の文字と一致します

  • [abc] と一致します文字 ab または c

  • [a-z] 任意の文字と一致します

  • [0-9] 任意の数字と一致します

  • [0-9]*任意の数字の任意の数と一致します

  • [a-z]*任意の数の文字と一致します

^ は特定の文字または文字列で始まることを意味します

^a は文字 a で始まることを意味します

$ は特定の文字で終わることを意味します文字または文字列

s$ は、文字 s

で終わることを意味します。正規表現を使用してパターンを一致させるために使用される演算子は、次のとおりです。

REGEXP または NOT REGEXP(RLIKE または NOT RLIKE)

注: 正規表現一致パターン、その正規表現は一致フィールドのどこにでも出現します。パターンが一致する場合、一致させるために両側にワイルドカード文字を置く必要はありません。

ワイルドカード文字 . のみを使用して一致させる場合、N と仮定すると、パターンの一致は、パターンの方が大きいことを意味します。 than Equal to N;

上記の文をどのように理解できますか?

つまり、

... 3 文字以上のデータと一致します。

.... 4 文字以上のデータと一致します。文字

# ユーザー名が文字 l で始まるユーザーをクエリします: ^l;

#正規表現の記述

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 '^...$';

関連する推奨事項:
プログラミング ビデオ コース

以上がPHPでファジークエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。