複数の値に MySQL のような演算子を使用する
問題:
MySQL クエリが試行しています「スポーツ」または「パブ」のいずれかを含む値の一致に LIKE 演算子を使用すると、結果が生成されません。望ましい結果。
クエリ:
SELECT * FROM table WHERE interests LIKE ('%sports%', '%pub%')
期待される動作:
クエリは、「 「興味」フィールドに「スポーツ」または「パブ」のいずれかが含まれているか、
説明:
この問題は、複数のパターンを持つ LIKE 演算子に OR 条件が必要なために発生します。提供されたクエリは、適切な OR ロジックを使用せずに 2 つの連続した LIKE 演算子を使用しようとしているため、正しく一致しません。
解決策 1: OR 条件
より単純な解決策は、次のとおりです。複数の一致基準を指定するための OR 演算子:
SELECT * FROM table WHERE interests LIKE '%sports%' OR interests LIKE '%pub%'
解決策 2: REGEXP演算子
もう 1 つの方法は、REGEXP (正規表現) 演算子を使用することです。これは、単一の式を使用したパターン マッチングをサポートします。
SELECT * FROM table WHERE interests REGEXP 'sports|pub'
この式では | が使用されます。 (パイプ) 文字を使用して 2 つのキーワード間の論理 OR を指定すると、「スポーツ」または「パブ」またはその両方に一致する単一のパターンが得られます。
複数のパターンを一致させるには、REGEXP 演算子の方が効率的であることに注意してください。 OR 条件で LIKE を使用する場合と比較します。
以上が複数の値に対して MySQL LIKE 演算子を効果的に使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。