Mysql查询,或条件不起作用

时间:2012-11-09 08:38:35

标签: mysql

SELECT UT_10, LT_10, ACT_10, LT_10 - ACT_10, UT_10 - ACT_10  
FROM distributor  
WHERE (  
          LT_10 - ACT_10 <>1  
       OR LT_10 - ACT_10 <>2  
      )  
      AND ACT_10 <>10  
      AND 
     (  
          UT_10 - ACT_10 =1  
       OR UT_10 - ACT_10 =2  
     )  
      AND ACT_10 <>10  

我在mysql中写了这个查询。我不想要1或2个结果但是结果显示1请帮助我。 或者条件不适用于mysql查询。

你可以在这里看到结果:CLICK HERE FOR LARGE IMAGE

enter image description here

1 个答案:

答案 0 :(得分:6)

替换

LT_10 - ACT_10 <>1
OR LT_10 - ACT_10 <>2

使用

LT_10 - ACT_10 NOT IN (1,2)

原始查询会返回LT_10 - ACT_10等于1的结果,因为您使用了OR,如果您只希望结果不等于您应该使用{{1} }}。这可以使用AND缩短,如上例所示。

您的原始条件没有用处,因为NOT IN只能取一个值 - 它永远不会等于LT_10 - ACT_101(这是两个部分所需要的原始2条件要评估为OR