この記事では主にPHPでファジークエリを実装する方法を紹介します。興味のある方はぜひ参考にしてください。
パターンクエリ
1. SQL マッチングモード
2. 正規表現マッチングモード (通常は推奨されません)
SQL マッチングモード
1. SQL マッチングモードを使用します。演算子は使用できません。 =または! =、代わりに演算子 LIKE または NOT LIKE を使用します。
2. SQL マッチング モードを使用して、MYSQL は 2 種類のワイルドカード文字を提供します。
% は、任意の数の任意の文字 (0 を含む) を表します。
_ は、任意の 1 文字を表します。
3. 一致形式に上記の 2 つのワイルドカード文字が含まれていない場合、クエリの効果は次のようになります。 = または! と同等です。 =
4. SQL マッチング モードを使用します。マッチングの際、大文字と小文字は区別されません
ワイルドカード (正規表現)
。 * は、その前にある 0 個以上の文字と一致しますx* は、任意の数の x 文字と一致します [..] 括弧内の任意の文字と一致します
[abc] ab または c の文字と一致します[a-z ] 任意の文字と一致します
[0 -9] 任意の数値に一致します^a は a の文字で始まることを意味します $ は特定の文字または文字列で終わることを意味しますs$ は文字 s で終わることを意味します 正規表現一致モードを使用する場合、使用される演算子は次のとおりです:
REGEXP or NOT REGEXP(RLIKE or NOT RLIKE)
注: 正規表現一致パターンの場合、正規表現が一致フィールドのどこかに出現する場合、
パターンは一致し、ワイルドカードを置く必要はありません一致させるには両側を使用します。
N と仮定して一致させるためにワイルドカード . を使用する場合、一致するパターンは N 以上であることを示します。
つまり
... 3 文字以上のデータと一致します
.... 4 文字以上のデータと一致します
#ユーザー名が文字 l で始まるユーザーをクエリします: ^l;
#查询用户名以某个字符开头的用户 #查询用户名以字符'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%';
配列処理関数の抽出の詳細な説明と例
in_array() 配列に特定の値が存在するかどうかを確認する 詳細な説明
PHP マゼント背景ログインできない問題 解決策以上がPHPでファジークエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。