REGEXP を使用して同じフィールドを複数の値で検索したい。出来ますか?
SELECT
*
FROM
posts
WHERE keyword LIKE '%ipad%'
AND keyword LIKE '%iphone%'
AND keyword LIKE '%nokia%' ;
このクエリはORに使用され、AND条件に変換したい
SELECT * FROM posts WHERE keyword REGEXP 'ipad|iphone|nokia';
REGEXP を使用して同じフィールドを複数の値で検索したい。出来ますか?
SELECT
*
FROM
posts
WHERE keyword LIKE '%ipad%'
AND keyword LIKE '%iphone%'
AND keyword LIKE '%nokia%' ;
このクエリはORに使用され、AND条件に変換したい
SELECT * FROM posts WHERE keyword REGEXP 'ipad|iphone|nokia';
keyword
フィールドに複数の値 (デバイス) を含めることができますか? のようにipad;iphone;nokia
?
もしそうなら、これは悪い習慣です。これは第 1 正規形に違反しており、不適切なテーブル設計の兆候です。それでも、複数のLIKE
andAND
句を使用した方法は機能するはずです。
これを MySQL で REGEXP 構文に変換するのは簡単ではなく、問題を起こす価値はまったくありません。詳細については、この投稿を参照してください。