01前言
MySQL NULL值如何处理?当看到这个话题的时候,我有点蒙圈,NULL如何处理?我的第一反应是想怎么处理就怎么处理咯,不太明白想问什么?后面想一想,还是不怎么明白。只能通过我的经验说说这个NULL值,希望是你想要的答案!
02简单聊一聊1.NULL值出现在哪?
我们的库表某个字段或某部分字段为空。
2.怎么处理?如何查询它?
MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作。
为了处理这种情况,MySQL提供了三大运算符:
IS NULL: 当列的值是 NULL,此运算符返回 true。
IS NOT NULL: 当列的值不为 NULL, 运算符返回 true。
<=>: 比较操作符(不同于=运算符),当比较的的两个值为 NULL 时返回 true。
关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 值 。
在 MySQL 中,NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。
MySQL 中处理 NULL 使用 IS NULL 和 IS NOT NULL 运算符。
03看个例子-- 新建一张表,并插入四条数据
create table `csj_class`(
`id` INT,
`name` varchar(20),
`classmates` INT
);
INSERT into csj_class (id,name) values
(1,'one',20),
(2,'two',15);
INSERT into csj_class (id,name) values (3,'three');
INSERT into csj_class (name,classmates) values ('three',10);
示例一:
-- 将id+classmates的和打印出来,id和classmates有一个为null,结果也为null
select id+classmates from csj_class;
示例二:
-- 打印id为null的行,没有打印成功
select * from csj_class where id=null;
示例三:
select ifnull(id,0)+IFNULL(classmates,0) as sum from csj_class;
示例四:
select * from csj_class where id is null;
-- 使用<=>和is null 结果相同
select * from csj_class where id <=> null;
//具体结果你知道了的,本处略。
示例五:
select * from csj_class where id is not null;
//具体结果你也是知道了的,本处略。
END!