值为null遇到的问题:
1.使用select对数据进行处理时,如果有格值为null,该命令会无法正常工作。如示例一
2.使用where限定条件时,null值不能处理。如示例二
-- 新建一张表,并填入数据
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;
示例二:
```#sql
-- 打印id为null的行,没有打印成功
select * from csj_class where id=null;;
```
为了处理这种情况,mysql提供了三大运算符:
- is null:当列的值是null,此运算符返回true。
- is not null:当列的值不为null,运算符返回true。
- <=>:比较运算符。当比较的两个值为null时,返回true。
select ifnull(id,0)+IFNULL(classmates,0) as sum from csj_class;
```#sql
select * from csj_class where id is null;
-- 使用<=>和is null 结果相同
select * from csj_class where id <=> null;
```
```#sql
select * from csj_class where id is not null;
```