ホームページ  >  記事  >  バックエンド開発  >  mysqlの特定のフィールドに対する通常の一致するファジークエリ

mysqlの特定のフィールドに対する通常の一致するファジークエリ

silencement
silencement転載
2020-01-27 21:18:213430ブラウズ

mysqlの特定のフィールドに対する通常の一致するファジークエリ

特定のフィールドをクエリするとき、特定のデータ部分のみを一致させたい場合があります。たとえば、この記事のすべてのキーワードをクエリして、特定のデータが一致するかどうかを確認したい場合です。キーワードが存在する場合、多くの場合、マッチングが必要になります。特定のキーワード値をマッチングしてクエリする方法を説明しましょう。

SQL ファジー クエリの構文は、

"SELECT 列 FROM テーブル WHERE 列 LIKE ';パターンです。 「;」。

SQL には 4 つの一致モードがあります:

1. % は 0 個以上の任意の文字を表します。次のステートメント:

SELECT * FROM user WHERE name LIKE ';%三%';

は、名前を「Zhang San」、「Three-legged Cat」、「Tang Sanzang」に変更します。 " など。"three" を含むすべての文字を検索します。

2. _ は任意の 1 文字を表します。ステートメント:

SELECT * FROM user WHERE name LIKE ';_三_';

名前が 3 文字で中央の文字が「三」である「Tang Sanzang」のみを検索します ;

SELECT * FROM user WHERE name LIKE ';三__';

名前が 3 文字で最初の文字が「三」である「三本足の猫」のみを検索します ;

3. [ ] は、括弧内にリストされている文字の 1 つを表します (正規表現と同様)。ステートメント:

SELECT * FROM user WHERE name LIKE ';[张李王]三';

は、「Zhang San」、「Li San」、「Wang San」 (および"Zhang Li Wang San");

[ ] に一連の文字 (01234、abcde など) が含まれる場合、「0-4」、「a-e」と省略できます

SELECT * FROM user WHERE name LIKE ';老[1-9]';

は "old 1"、"old 2"、...、"old 9";

## を検索します。 # 「-」文字を検索したい場合は、最初に入力してください: ';Zhang San[-1-9]';

4. [^ ] は、括弧内にリストされていない単一の文字を意味します。ステートメント:

SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';

は、姓が「Zhang」、「Li」、または「Wang」ではない「」を検索します" Zhao San"、"Sun San" など;

SELECT * FROM user WHERE name LIKE ';老[^1-4]';

から "老1" は除外されます"老4 "「老5」、「老6」、...、「老9」を探してください。

!最後がポイントです!

ワイルドカードのため、特殊文字「%」、「_」、「[」、および「';」のクエリ ステートメントは通常は実装できません。特殊文字を「[ ]」で囲むと便利です。 「普通に問い合わせできます。これに基づいて、次の関数を作成します。

function sqlencode(str)

str=replace(str,"';","';';")

str =replace(str,"[","[[]") ';この文は最初に来る必要があります

str=replace(str,"_","[_]")

str=replace(str,"%","[%]")

sqlencode=str

end function

以上がmysqlの特定のフィールドに対する通常の一致するファジークエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はwww.liqingbo.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。