说明:
NULL是什么,查询条件某字段时某一行这个字段或其他行这个字段没有值 所以查询出来为 NULL 。
为了处理这种情况,MySQL提供了三大运算符如下:
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于 = 运算符),当比较的的两个值相等或者都为 NULL 时返回 true。
关于 NULL 的条件比较运算是比较特殊的。不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
NULL 值与任何其它值的比较(即使是 NULL)永远返回 NULL,即 NULL = NULL 返回 NULL 。
处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
1、建表
DROP TABLE IF EXISTS `text_null`;
CREATE TABLE `text_null` (
`id` int(11) NOT NULL,
`text_title` char(10) COMMENT '书名',
`text_author`char(10) COMMENT '作者',
`price`double COMMENT '价格',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO text_null (id,text_title,text_author,price) values (1,'百科全书解决空值','火爆的后槽牙儿',6.66);
INSERT INTO text_null (id,text_title,text_author,price) values (2,'这是一本书','小王',NULL);
INSERT INTO text_null (id,text_title,text_author,price) values (3,'西游记','作者',NULL);
2、演示
2.1、查看新建的表数据
SELECT * from text_null;
2.2、演示 = 和 != 运算符
SELECT * from text_null where price = null;
SELECT * from text_null where price != NULL;
可以看到 = 和 != 运算符是不起作用的
2.3、使用 IS NULL 和 IS NOT NULL
SELECT * from text_null where price IS NULL;
SELECT * from text_null where price IS NOT NULL;