產品操作MySQL第7篇 – 運算子 – IS NULL

MYSQL
本資料為產品崗位作為日常工作參考,語言口語化
At 2019/4/27 By David.Yang
介紹什麼是IS NULL
IS NULL作為一種運算子,用來對資料表中的NULL值資料進行過濾。
語法
target IS NULL
target值為NULL,則表示式返回TRUE,否則返回FALSE。
MYSQL中沒有BOOLEAN型別,
使用TINYINT(1)表示BOOLEAN,
1 = TRUE, 0 = FALSE。
IS NULL和大於、小於等一樣都是比較運算子,可以在SELECT WHERE等出使用它。
示例:
SELECT 1 IS NULL, # 0
0 IS NULL, # 0
NULL IS NULL; # 1

IS NOT NULL
表示對值進行非NULL的確定
target IS NOT NULL
target不值為NULL,則表示式返回TRUE,否則返回FALSE。
SELECT 1 IS NOT NULL, #-- 1
0 IS NOT NULL, #-- 1
NULL IS NOT NULL; #-- 0;

資料表演示IS NULL
過濾出學生表當中,國籍為NULL學生
SQL
SELECT * FROM students WHERE nationality IS NULL;

那IS NOT NULL呢?
SQL
SELECT COUNT(*) FROM students WHERE nationality IS NOT NULL;
通過COUNT()統計有27個學生都有國籍

IS NULL能過濾字串空麼?

我們構造了幾條測試資料,他們的地址欄位有幾種型別:
FALSE字串
0
空字串
以及NULL
我們再來使用IS NULL過濾
SQL
SELECT * FROM students WHERE address IS NULL;

結果只能查詢出NULL的記錄,
所以需要注意,IS NULL不能對其他的空型別進行過濾。
IS NULL可以和其他條件通過OR拼接
SELECT
*
FROM
students
WHERE
nationality = '南宋'
OR
nationality IS NULL;