mysql : 使用不等于过滤null的问题
程序员文章站
2022-03-22 12:55:52
在写sql时遇到查询结果不对的情况,经查阅,发现是因为查询条件过滤null的问题;从网上找到如下资料: 在写SQL 条件语句是经常用到 不等于‘!=’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉。 例:表A 用 select * from A where ......
在写sql时遇到查询结果不对的情况,经查阅,发现是因为查询条件过滤null的问题;从网上找到如下资料:
在写sql 条件语句是经常用到 不等于‘!=’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉。
例:表a
用 select * from a where b1 != 1查询时得到的结果为:
第三列 b1为空的也是会筛选掉的。
因为 null 不是一个「值」,而是「没有值」。「没有值」不满足「值不等于1」这个条件。所以 mysql 尽量不要默认值是 null。
要查出第三列只需将sql 改为 :select * from a where b1 != 1 or b1 is null 即可。
上面这种方法最通俗,网上也最多,但是我总是感觉效率太低。
目前我使用的方法是:select * from a where ifnull(b1,'') != 1
开发中遇到的问题,做下记录。
推荐阅读
-
mysql unique key在查询中的使用与相关问题
-
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
-
使用mysql中遇到的几个问题
-
使用cmd运行mysql数据库的时候,报错:"不是内部命令也不是可有运行的程序"问题的解决办法
-
MySQL中NOT IN填坑之列为null的问题解决
-
web.py在SAE中的Session问题解决方法(使用mysql存储)
-
Mysql5.7中使用group concat函数数据被截断的问题完美解决方法
-
Java中是使用增强for的null问题
-
使用wordpress的$wpdb类读mysql数据库做ajax时出现的问题该如何解决
-
使用spoon(verison 6)2建立MySQL的连接遇到的问题