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!