本资料为产品岗位作为日常工作参考,语言口语化
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;