Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询不匹配多个条件_Mysql_Sql - Fatal编程技术网

Mysql 查询不匹配多个条件

Mysql 查询不匹配多个条件,mysql,sql,Mysql,Sql,本以为这个MySQL查询正在运行并返回结果,但事实并非如此 忽略位:where published='1'部分并显示所有结果 不管发布的价值是什么 我认为这与在某些数据位上加括号有关 但是,我们已经尝试了各种方法,似乎无法获得 没错 以下是我目前的查询方式: SELECT * FROM news WHERE published='1' AND title LIKE '%$q%' OR details LIKE '%$q%' ORDER BY id DESC 感谢您的帮助 应使

本以为这个MySQL查询正在运行并返回结果,但事实并非如此 忽略位:where published='1'部分并显示所有结果 不管发布的价值是什么

我认为这与在某些数据位上加括号有关 但是,我们已经尝试了各种方法,似乎无法获得 没错

以下是我目前的查询方式:

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

感谢您的帮助

应使用显式括号:

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。

非常感谢您的解释,非常感谢!我想我已经试过了,但显然不是现在应该做的——道歉是有道理的