所以我知道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