mysql中不等于过滤null的问题


在写SQL 条件语句是经常用到 不等于‘!=’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉。

例:表A

A1  B1
1 0
2 1
3 NULL

用 select * from A where B1 != 1查询时得到的结果为:

A1 B1
1 0

第三列 B1为空的也是会筛选掉的。

要查出第三列只需将SQL 改为 :select * from A where B1 != 1 or B1 is null 即可。

上面这种方法最通俗,网上也最多,但是我总是感觉效率太低。

目前我使用的方法是:select * from A where IFNULL(B1,'')  != 1

开发中遇到的问题,做下记录。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM