Mysql的NULL的一个注意点
2013-07-31 18:48 轩脉刃 阅读(497) 评论(0) 编辑 收藏 举报今天看到一个问题:
select a.* from a where (a.id not in (NULL));
这个sql语句会返回什么?
刚开始以为是返回所有item,但是实际运行下返回是返回empty set。
看了下手册:
http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html
判断一个字段是否是NULL只能使用IS NULL或者IS NOT NULL来判断,不能使用比较符号(=,<,>, !=)来判断
任何数字和NULL进行比较符号结果是NULL
为什么会这么设计呢?NULL是代表无定义的值(a missing unknown value),和一个无定义的值比较大小是没有意义的,也是“无法比较的”,或者说,比较结果是不定的(NULL)。
好吧~就这么理解了。
实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”
本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系。