在同一个Mysql查询中使用AND和OR

时间:2013-07-28 07:16:35

标签: php mysql

"SELECT * FROM users WHERE user_id='$user_id' AND active='1' OR reserved='1'";

我想拉出所有Active或Reserved = 1的用户,但我认为我没做错。

4 个答案:

答案 0 :(得分:5)

将您的查询更改为:

"SELECT * FROM users WHERE (user_id='$user_id') AND (active='1' OR reserved='1')";

答案 1 :(得分:3)

在数学方面,如果你写5 + 4 - 3,那么首先5 + 4部分(然后9 - 3 = 6)或4 - 3首先执行({1}}并不重要5 + 1 = 6)。但是,对于ANDOR,它们完成的顺序确实很重要。所以你需要括号。

... WHERE `user_id`='$user_id' AND (`active`=1 OR `reserved`=1)

答案 2 :(得分:1)

如果您希望所有用户处于Active或Reserved = 1,则只需删除user_id='$user_id' AND,因为其他答案只会显示具有$ user_id的user_id的单个用户。否则@ Akam的说得对::)

答案 3 :(得分:1)

较长的版本

"SELECT * FROM users WHERE user_id='$user_id' AND active='1' OR  user_id='$user_id' AND reserved='1'";

更短的版本

"SELECT * FROM users WHERE user_id='$user_id' AND (active='1' OR  reserved='1')";