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

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

4

4 回答 4

5

将您的查询更改为:

"SELECT * FROM users WHERE (user_id='$user_id') AND (active='1' OR reserved='1')";
于 2013-07-28T07:18:29.673 回答
3

在数学中,如果您写,那么您是先做部分(然后)还是先做部分(然后)5 + 4 - 3并不重要。但是,使用and ,它们的执行顺序很重要。所以你需要括号。5 + 49 - 3 = 64 - 35 + 1 = 6ANDOR

... WHERE `user_id`='$user_id' AND (`active`=1 OR `reserved`=1)
于 2013-07-28T07:19:36.650 回答
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')";
于 2013-07-28T07:25:45.130 回答
1

如果您想要Active 或 Reserved = 1 的所有用户,则只需删除即可user_id='$user_id' AND,因为其他答案只会显示 user_id 为 $user_id 的单个用户。否则@Akam 做对了:)

于 2013-07-28T07:21:28.883 回答