2012-11-09 43 views
3
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查詢。MySQL查詢,或條件不工作

,你可以在這裏看到的結果是:CLICK HERE FOR LARGE IMAGE

enter image description here

回答

5

更換

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

隨着

LT_10 - ACT_10 NOT IN (1,2) 

結果,其中LT_10 - ACT_10等於1你origi返回最終查詢,因爲你使用OR,如果你只想要結果它不等於要麼你應該使用AND。這可以使用NOT IN縮短,如上例所示。

你原來的狀態沒有任何用處爲LT_10 - ACT_10只能取一個值 - 它永遠不會等於12(這是需要什麼樣的會爲原OR條件兩部分,以評估false

+0

謝謝......它工作正常...... – Sambhaji

+0

沒問題。如果您在堆棧溢出問題上收到您滿意的問題的答案,則應通過單擊左側的打勾將其標記爲已接受的答案。 –