1. 程式人生 > >mysql-5null值處理

mysql-5null值處理

值為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;


示例二:

-- 列印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;

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;