所以我知道MySQL的說:有沒有辦法查詢mysql中所有不在集合中的記錄,即使它是空的?
一般來說,含有NULL值和空表表是在編寫子查詢,總是考慮是否採取了這兩種可能性考慮「邊緣情況。」 http://dev.mysql.com/doc/refman/5.0/en/all-subqueries.html
但是這沒有意義。如果我說:
select * from users where users.id NOT IN (NULL)
;
不應該返回所有用戶嗎?即使通過自己的邏輯說:
NOT IN是<> ALL的別名。因此,這兩個語句是相同的:
對我而言,返回所有記錄其中id不等於NULL,這是所有記錄。
所以問題是,我怎樣才能實現選擇不在特定集合中的所有記錄,即使該集合爲空。
顯然,在我的應用程序代碼(Rails應用程序)中,我可以檢查該集是否爲空並修改我的查詢,但這看起來很荒謬。有什麼辦法可以在sql中完成這一切嗎?
很好的答案!感謝您的解釋!對我來說,簡單的解決方法是將空數組加入逗號分隔的字符串中 – 2013-03-21 05:13:54