PHP - 错误的SELECT - 查询

时间:2011-08-13 21:24:07

标签: php mysql

我有这段代码:

$r=mysql_query("SELECT * FROM advertisements WHERE exposure!='0' AND `status`='2' AND clicks_left_micro>0 OR clicks_left_mini>0 OR clicks_left_standard>0 OR clicks_left_extended>0");

上面的代码,只能在我的数据库中获得2个第一行。 (请查看下面的图片): http://i51.tinypic.com/dejiw.png

为什么选择所有3行,当我具体说 status =“2”

我该如何解决这个问题?

提前致谢。

3 个答案:

答案 0 :(得分:4)

这是你拥有的:

SELECT * FROM advertisements 
WHERE exposure!='0' 
AND `status`='2' 
AND clicks_left_micro>0 
OR clicks_left_mini>0 
OR clicks_left_standard>0 
OR clicks_left_extended>0

但我认为这就是你真正想要的:

SELECT * FROM advertisements 
WHERE exposure!='0' 
AND `status`='2' 
AND (clicks_left_micro>0 
OR clicks_left_mini>0 
OR clicks_left_standard>0 
OR clicks_left_extended>0)

答案 1 :(得分:0)

您必须使用括号来尊重布尔运算符优先级。

答案 2 :(得分:0)

尝试将OR部分封装在括号中

AND clicks_left_micro>0 OR clicks_left_mini>0 OR 
clicks_left_standard>0 OR clicks_left_extended>0

更改为

AND (clicks_left_micro>0 OR clicks_left_mini>0 OR 
clicks_left_standard>0 OR clicks_left_extended>0)

应该解决它。