在写 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;

数据:

mysql 查询条件中 or mysql查询条件不等于_数据

2、测试SQL 和结果

mysql 查询条件中 or mysql查询条件不等于_条件语句_02

测试结果

mysql 查询条件中 or mysql查询条件不等于_@MySQL和SQL_03

3、可以发现:

  • 不等于:会过滤为空(特别注意);
  • 等于:精确匹配没问题
  • 大于等于:空不会大于,没问题
  • 小于等于:空也会小于(要注意)。