mysql ファジー クエリ ステートメントとは何ですか?
ファジークエリステートメントは次のとおりです:「SELECT フィールド FROM テーブル WHERE 特定のフィールド Like 条件」。
mysql は 4 つのマッチング モードを提供します:
1、% は 0 個以上の任意の文字を表します。
次のステートメント:
SELECT * FROM user WHERE name LIKE ';%三%';
は、名前を「Zhang San」、「Sanjiao」とします。 「猫」、「唐の三蔵法師」など。「3」を含むすべての文字を検索します。
2、_ は任意の 1 文字を表します。ステートメント:
SELECT * FROM user WHERE name LIKE ';_三_';
名前が 3 文字で中央の文字が " になるように、「Tang Sanzang」のみを検索します。 Three";
SELECT * FROM user WHERE name LIKE ';三__';
名前が 3 文字で最初の文字が " になるように、「three-legged cat」のみを検索します。 Three";
3、[ ] は括弧内にリストされた文字の 1 つを表します (正規表現と同様)。
ステートメント:
SELECT * FROM user WHERE name LIKE ';[张李王]三';
は、「Zhang San」、「李王」を検索します。 " "Three", "Wang San" ("Zhang Li Wang San" ではなく);
[ ] に一連の文字 (01234、abcde など) が含まれる場合は、"0" と省略できます。 -4", "a-e"
SELECT * FROM user WHERE name LIKE ';老[1-9]';
は、「old 1」、「old 2」、...を検索します。 ., "老9";
「-」文字を探している場合は、最初に入力してください: ';Zhang San[-1-9]';
4,[^ ] は、括弧内にリストされていない 1 つの文字 を表します。 ステートメント:
SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';
という姓の人の名前が検索されます。 「Zhang」ではありません。「Zhao San」、「Li」の「Sun San」、「Wang」など;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
は、「Old 1」から「Old 4」を除外して、「Old 5」、「Old 6」、...、「Old 9」を検索します。
最後がポイントです!
ワイルドカードのため、特殊文字「%」、「_」、「[」、および「';」のクエリ ステートメントは通常は実装できません。特殊文字を「[ ]」で囲むと便利です。 「普通に問い合わせできます。これに基づいて、次の関数を作成します:
function sqlencode(str) str=replace(str,"';","';';") str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function
推奨チュートリアル: "
MySQL Tutorial以上がmysqlファジークエリステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。