我在MySQL中有一个名为sale的表,其中包含3列,如下所示: 售:
id|customers|type
我想选择类型为!= 2 OR的销售 type = 2且customers!= 0
的销售额我写这样的声明:
sale.type != 2 OR (sale.type = 2 AND sale.customers != 0 )
但它没有给我正确的行。
此外,我必须在此查询中使用AND作为其他列,但所有这些列之间的运算符是AND,就在这里我使用OR。
答案 0 :(得分:1)
请记住这样的规则:括起OR!
where foo = 'bar'
and (sale.type != 2 OR (sale.type = 2 AND sale.customers != 0 ) )
and blah = 3
实际上您的情况可以简化为:
( sale.type != 2 OR sale.customers != 0 )
因为逻辑检查sale.type = 2是多余的。
答案 1 :(得分:0)
您是否希望sales.type不等于2或(当您的客户不等于0时,sales.type等于2?) 你可以一起使用HAVING和WHERE。 从销售中选择*类型!= 2或(type = 2 HAVING customers!= 0);
答案 2 :(得分:0)
我试着用这个找到工作:sqlfiddle
select * from sale where
sale.type != 2 OR (sale.type = 2 AND sale.customers != 0 )