データベースで特定の列のキーワードを検索する SQL ステートメントを作成しています。キーワード 1 とキーワード 2 の条件を満たすレコードを返すクエリが必要です。これはうまく機能していましたが、キーワードを複数の列からクエリできるようにする必要がありました。OR 句を追加した後、1 つのキーワードだけでなく両方のキーワードにヒットするレコードの結果を返すクエリを取得できませんでした。
OR 句が AND 句に影響を与えるのはなぜですか?
指定された 3 つの列を検索しながら、ヒットを取得するために両方のキーワードが必要になるようにするには、このステートメントをどのように修正できますか?
ステートメント:
SELECT CASE WHEN t1.longdesc IS NULL THEN t1.desc
WHEN t1.longdesc IS NOT NULL THEN t1.longdesc END AS 'description',
t1.upc
FROM Items t1
LEFT JOIN Suppliers t2 ON t1.supplier = t2.supplier_no
LEFT JOIN Sections t3 ON t1.Section = t3.section_no
LEFT JOIN Groups t4 on t1.group = t4.group
WHERE desc LIKE '%keyword1%'
OR Item_code LIKE '%keyword1%'
OR certify_code LIKE '%keyword1%'
AND desc LIKE '%keyword2%'
OR Item_code LIKE '%keyword2%'
OR certify_code LIKE '%keyword2%'