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

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

墨辰丷
墨辰丷オリジナル
2018-06-01 11:50:572874ブラウズ

この記事では主に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%';

概要: 以上がこの記事の全内容です、皆様の勉強に少しでもお役に立てれば幸いです。

関連する推奨事項:

php

配列処理関数の抽出の詳細な説明と例




php

in_array() 配列に特定の値が存在するかどうかを確認する 詳細な説明

PHP マゼント背景ログインできない問題 解決策


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

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