我正在创建一个 SQL 语句,用于在数据库中搜索特定列中的关键字。我需要查询返回符合关键字 1 和关键字 2 条件的记录。这工作得很好,但是我需要允许从多个列中查询关键字。添加 OR 子句后,无法让查询返回对两个关键字都命中的记录而不仅仅是一个关键字的结果。
为什么 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%'