亲爱的朋友我有一个表(code_bit_table),我有文章商店。每篇文章都有SUBJECT,然后每篇文章都有TITLE和TAGS。我想根据标题或标签字段中的任何字母在一个SUBJECT中搜索表格。例如,我想只搜索PHP,并且在PHP中我想检查TITLE或TAGS字段是否包含一些文本(例如数组)。
问题是我的查询也返回其他主题。这可能是一个非常简单的问题,但令我困惑很多
SELECT * FROM code_bit_table WHERE `subject` = 'PHP' AND `tags` LIKE '%text%' OR `title` LIKE '%text%'
查询工作正常,但为什么它返回同样的表中存在的jQuery等其他主题。
答案 0 :(得分:1)
圆括号是你的朋友。
SELECT *
FROM code_bit_table
WHERE `subject` = 'PHP'
AND (`tags` LIKE '%text%'
OR `title` LIKE '%text%'
)
答案 1 :(得分:1)
SELECT * FROM code_bit_table WHERE `subject` = 'PHP' AND (`tags` LIKE
'%text%' OR `title` LIKE '%text%')
答案 2 :(得分:1)
您必须为OR
部分打开左右括号'('&')'以覆盖AND
运算符的优先级:
SELECT *
FROM code_bit_table
WHERE `subject` = 'PHP' AND
(`tags` LIKE '%text%' OR `title` LIKE '%text%');
答案 3 :(得分:1)
您必须将tags
和title
分组。
SELECT *
FROM code_bit_table
WHERE `subject` = 'PHP' AND
(`tags` LIKE '%text%' OR
`title` LIKE '%text%');