mysql 中不等于过滤 null 的问题(同时比较等于,大于和小于)

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

1、原始数据和表结构

CREATE TABLE `test01` (
  `ID` bigint(18) NOT NULL AUTO_INCREMENT,
  `NUM` bigint(18) DEFAULT NULL COMMENT 'NUM',
  `NAME` varchar(250) DEFAULT NULL COMMENT '名称',
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

数据:

2、测试SQL 和结果

测试结果

3、可以发现:

  • 不等于:会过滤为空(特别注意);
  • 等于:精确匹配没问题
  • 大于等于:空不会大于,没问题
  • 小于等于:空也会小于(要注意)。
posted @ 2019-12-13 10:04  不无聊  阅读(2284)  评论(0编辑  收藏  举报