查询不匹配多个条件

nmpmafwu  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(379)

本以为这个mysql查询正在工作并返回结果,但它忽略了位:where published='1'部分并显示所有结果,而不管published的值是多少。
我认为这与在查询的某些部分用括号括起来有关,但我尝试了各种方法,似乎都没能把它弄对。
以下是我目前的查询方式:

SELECT * 
FROM news 
WHERE published='1' 
  AND title LIKE '%$q%' 
   OR details LIKE '%$q%'
ORDER BY id DESC

感谢您的帮助!

im9ewurl

im9ewurl1#

应应用显式括号:

SELECT * 
FROM news 
WHERE published='1'
  AND (title LIKE '%$q%' OR details LIKE '%$q%')
ORDER BY id DESC

在使用隐式括号的示例中,它是这样工作的:

WHERE (published='1' AND title LIKE '%$q%')
   OR details LIKE '%$q%'

因为 and 具有比 or .

相关问题