複数の値の MySQL LIKE クエリ
この記事では、MySQL クエリで LIKE 演算子を使用して複数の値を検索するときに直面する一般的な問題について説明します。目標は、特定のフィールドに指定された値の少なくとも 1 つが含まれる行を検索することです。
クエリとサンプル データ
次の MySQL クエリを考えてみましょう:
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
「興味」に次のサンプルデータを入れますフィールド:
sports,shopping,pool,pc,games shopping,pool,pc,games sports,pub,swimming, pool, pc, games
問題の説明
上記のクエリは期待どおりに機能しません。 「スポーツ」または「パブ」のいずれかを含む行は返されません。
解決策: ブール演算子の使用
簡単な解決策は、次のようなブール演算子を使用することです。または、複数の値の条件を指定するには:
WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
より効率的解決策: REGEXP
を使用すると、REGEXP 演算子を使用して複数の値をより効率的に検索できます。
WHERE interests REGEXP 'sports|pub'
このソリューションでは、REGEXP 演算子を使用して正規表現を指定します。 「興味」フィールドに「スポーツ」または「スポーツ」のいずれかが含まれる行と一致します。 "pub."
リソース
MySQL の REGEXP の詳細については、次のリソースを参照してください:
以上が複数の値に対して MySQL の LIKE 演算子を効率的に使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。