php の Mysql ファジー クエリ ステートメント: 1. [%] は任意の 0 個以上の文字を表し、任意のタイプおよび長さの文字に一致します; 2. [_] は任意の 1 文字を表し、任意の 1 文字に一致します;3. [[]] は文字、文字列、または範囲を指定し、一致するオブジェクトがそれらのいずれかである必要があります。
php の mysql ファジー クエリ ステートメントは次のとおりです:
一般的なファジー クエリ ステートメントは次のとおりです:
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
条件に関して、SQL には 4 つのマッチング モードが用意されています。
1、%: 0 個以上の任意の文字を表します。任意の種類および長さの文字に一致します。場合によっては、中国語の場合は 2 つのパーセント記号 (%%) を使用して表現してください。
たとえば、
SELECT * FROM [user] WHERE u_name LIKE '%三%'
は、u_name「Zhang San」、「Zhang Cat San」、「Three-legged Cat」、「Tang Sanzang」に「3」が含まれるすべてのレコードを検索します。等。
さらに、u_name に「三」と「猫」の両方を含むレコードを検索する必要がある場合は、and 条件を使用してください。
SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
を使用する場合は、 「三本足の猫」は検索できましたが、条件に合う「張猫三」は検索できませんでした。
2, _: 任意の 1 文字を表します。単一の任意の文字と一致します。式の文字長を制限するためによく使用されます:
たとえば、
SELECT * FROM [user] WHERE u_name LIKE '_三_'
では「Tang Sanzang」のみが検索されるため、u_name は 3 文字で、中央の文字は"三";
別の例は
SELECT * FROM [user] WHERE u_name LIKE '三__';
名前が 3 文字で最初の文字が "三" である "三本足の猫" だけを検索します;
3 , [ ]: 括弧内にリストされた文字の 1 つを示します (正規表現と同様)。文字、文字列、または範囲を指定し、一致するオブジェクトがそれらのいずれかである必要があります。
たとえば、
SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
では、(「Zhang Li Wang San」ではなく) 「Zhang San」、「Li San」、「Wang San」が検索されます。 [ ] 一連の文字 (01234、abcde など) がある場合、「0-4」、「a-e」と省略できます。
SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'
は「old 1」、「old 2」を検索します。 ,..., "Old 9";
4, [^]: 括弧内にリストされていない単一の文字を表します。その値は [] と同じですが、一致するオブジェクトが指定された文字以外の文字である必要があります。
たとえば、
SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
では、「Zhang」、「Li」、「Wang」という名前ではない「Zhao San」、「Sun San」などが検索されます。
クエリの内容にワイルドカードが含まれている場合、は「Old 1」から「Old 4」を除外し、「Old 5」、「Old 6」、...
5 を検索します。ワイルドカードのため、特殊文字「%」、「_」、「[」のクエリ文は正常に実装できませんが、特殊文字を「[ ]」で囲むことで正常にクエリを実行できます。これに基づいて、次の関数を作成します:
SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
PHP プログラミングの入門から熟練度まで
以上がPHPのmysqlファジークエリステートメントに問題がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。