有一個查詢等同於像對凡在聲明
WHERE some_field IN (1, 2, !3, !4)
意味着
WHERE some_field = 1 AND some_field = 2 AND some_field != 3 AND some_field != 4
MySQL查詢變化?
有一個查詢等同於像對凡在聲明
WHERE some_field IN (1, 2, !3, !4)
意味着
WHERE some_field = 1 AND some_field = 2 AND some_field != 3 AND some_field != 4
MySQL查詢變化?
您應該具備以下條件where
既是一個共同無厘頭: -
WHERE some_field IN (1, 2)
或
WHERE some_field NOT IN (3, 4)
這不會做什麼不同於WHERE some_field IN(1,2) –
@MarshallTigerus:我已經在它們之間放了一個'OR'條件,而不是'和',所以這兩個條件都有作用,我認爲這是問題的意圖。 – Saurabh
我不確定這是否有效。第二個聲明使得第一個多餘的 –
這在很大程度上取決於上下文。
Where some_field IN (1, 2)
已經不會回到那裏some_field等於3或4
的可能的情況是,你必須用相同的ID相關聯some_field許多版本的一個表,你想只返回那些記錄與1和2 some_fields,但如果他們也有3或4在表中,你想排除他們。然後,你會想要做的事,如:
Select * from table
WHERE some_field = 1
AND some_ID in (select some_ID from table
where some_field = 2)
AND some_ID Not IN (select some_ID from table
where some_field IN (3, 4))
這將排除所有的ID從結果列表中以1:1的some_field和2
你怎麼把'ID IN'和'ID NOT IN'放在哪裏? – Saurabh
我假設表有一個主鍵。你也可以使用存在而不存在,但我更喜歡IN和NOT IN –
的3或4 some_field值some_field怎麼可以有兩個不同的價值一次? IN翻譯成OR不是AND AND –
你想要的東西必須是'OR'而不是'AND',請重新檢查。 – Saurabh
我認爲答案是否定的,因爲在同一組中有1而不是3是沒有意義的。 – linpingta