ホームページ >データベース >mysql チュートリアル >MySQL の LIKE 演算子を使用して複数の値を効率的にクエリする方法
MySQL LIKE クエリの複数の値
データベースでは、文字列内のパターンを一致させるために LIKE 演算子がよく使用されます。ただし、単一フィールド内の複数の値の一致を見つける必要がある場合は、困難になる可能性があります。この記事では、MySQL で LIKE 演算子を使用して複数の値をクエリする問題について説明します。
LIKE クエリが機能しない理由
提供されたクエリに従って:
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
このクエリは、「興味」フィールドに「スポーツ」または「スポーツ」のいずれかが含まれる行を取得しようとします。 「パブ」またはその両方。ただし、LIKE は指定されたパターンの存在を順番にチェックするため、望ましい結果が得られない場合があります。この場合、最初にすべての行に存在する '%sports%' が検索され、次に 1 つの行にのみ存在する '%pub%' が検索されます。したがって、「スポーツ」と「パブ」の両方を含む行のみが取得されます。
より高速で効率的なソリューション
複数のパターンで LIKE を使用する代わりに、次の代替案を検討してください:
OR 論理演算子:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
このクエリは、OR 論理演算子を使用して 2 つの LIKE ステートメントを結合します。いずれかのパターンに一致する行が返されます。この方法は、通常、複数のパターンを使用する LIKE よりも高速です。
REGEXP 正規表現:
WHERE interests REGEXP 'sports|pub'
REGEXP 演算子を使用すると、正規表現を検索できます。この場合、「sports|pub」という表現は、「sports」または「pub」のいずれかに一致するものが見つかることを意味します。 REGEXP は、より複雑なパターン マッチングのための強力なツールになります。
参考リンク:
以上がMySQL の LIKE 演算子を使用して複数の値を効率的にクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。