2009-09-14 211 views
-2

我使用多個IN運營商,在我的sql查詢,其中下面給出的條款......奇怪的行爲:SQL和運營商,在多個運營商

--- 
where ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful') 

但令人驚訝的結果,行爲似乎是OR的鍵入而不是AND類型。我的意思是忽略AND運營商...

你能解釋我爲什麼嗎?

+2

是什麼讓你這麼說?你有沒有收到你沒有想到的結果?這是什麼樣子? – 2009-09-14 08:04:34

+4

是在一個表中添加列標籤和ID還是不同?查看整個查詢更好。 – 2009-09-14 08:05:34

+0

謝謝X2和Mark_s它得到了解決......你的反問題給了我提示,導致它得到解決...我在查詢中使用了連接表和錯誤地映射ID ... 再次感謝 – 2009-09-14 08:12:39

回答

1

使用SQL Server 2008

SELECT * FROM 
(
    SELECT 0 AS ID, 'wow' as Tag 
) X 
WHERE ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful') 

結果我無法重現的結果: 無記錄

SELECT * FROM 
(
    SELECT 1 AS ID, 'wow' as Tag 
) X 
WHERE ID in (1, 3, 234, 2332, 2123, 989) AND tag in ('wow', 'wonderful') 

結果:

ID Tag 
1 wow 

再次檢查您的代碼。