"SELECT * FROM users WHERE user_id='$user_id' AND active='1' OR reserved='1'";
我想拉出所有Active或Reserved = 1的用户,但我认为我没做错。
答案 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
)。但是,对于AND
和OR
,它们完成的顺序确实很重要。所以你需要括号。
... 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')";