2012-07-09 81 views
1

简单的MySQL的问题我想写基于四个值的条件的查询但它似乎并不奏效,这里是和示例查询:MySQL查询语法

select * from table_1 where c=0 d=0 a=0 u=0 or c=1 d=1 a=1 u=1 
+1

我的直接反应是:SELECT * FROM TABLE_1将(C = 0,d = 0, a = 0和u = 0)或者(c = 1和d = 1,a = 1和u = 1),但这似乎太容易了...... – BunjiquoBianco 2012-07-09 13:58:46

+1

看起来你并不熟悉基本的SQL语法。 – konjac 2012-07-09 13:59:36

+0

谢谢,我没有看到任何愚蠢的问题,唯一愚蠢的问题是没有被问到的问题,所以我成为一名学习者,我没有看到问题必须被降级,但是我非常感谢大家的帮助 – dames 2012-07-09 14:03:34

回答

11

WHERE逻辑是不正确:

select * 
from table_1 
where (c=0 and d=0 and a=0 and u=0) 
or (c=1 and d=1 and a=1 and u=1) 

你需要将你的语句一起在括号中仍然使用AND用于需要组合在一起的任何条件。

+0

非常感谢 – dames 2012-07-09 14:05:24

+0

Parens可能是一个很好的做法,但这里并没有严格的必要,因为AND优先于OR。 – shawnt00 2012-07-09 14:58:39

1

或者,如果这些都始终为0和1,您可以使用一个小技巧,缩短查询:

where c+d+a+u = 0 or c*d*a*u = 1 
+0

非常感谢您的建议。 – dames 2012-07-09 14:19:00