MYSQL语句在一起OR和AND

时间:2013-04-09 08:08:20

标签: mysql sql

我在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。

3 个答案:

答案 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 )