Mysql - 选择具有相同值且其他列等于零的多个列

时间:2014-06-04 19:13:57

标签: php mysql

我有一个mysql查询,用于选择col1和col2 = 4以及col3或col4 = 0的记录

SELECT * FROM table WHERE 4 IN(col1, col2) && (col3 = 0 || col4 = 0)

是或不工作。它返回零行,我知道有4行

2 个答案:

答案 0 :(得分:3)

&安培;&安培;和||在SQL中是AND和OR。

将其重写为:

SELECT * FROM table WHERE (col1 = 4 AND col2 = 4) AND (col3 = 0 OR col4 = 0)

您不能将IN用于列名。您可以像这样使用IN: WHERE col3 IN('4','a','another valid value'), 等于WHERE (col3 = '4' OR col3 = 'a' OR ...)

答案 1 :(得分:0)

请尝试以下内容,而不是因为您发布的代码4 IN (col1, col2)将为col1=4 or col2 = 4,而您希望它为and条件

每次评论更新;下面的查询将准确地获取那些记录

  

总共有4行,其中column1或column2 = 4   行我只想返回col3或col4 = 0的行

SELECT * 
FROM test4 
WHERE (col1 = 4 or col2 = 4) 
and (col3 = 0 or col4 = 0)