Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql  isnull,ifnull,nullif用法

Mysql中isnull,ifnull,nullif的用法及语义详解

作者:@昵称不存在

MySQL中ISNULL判断表达式是否为NULL,IFNULL替换NULL值为指定值,NULLIF在表达式相等时返回NULL,用于空值处理、条件判断及避免错误,本文给大家介绍Mysql中isnull,ifnull,nullif的用法及语义,感兴趣的朋友一起看看吧

Mysql中isnull,ifnull,nullif的用法

在 MySQL 中,ISNULL、IFNULL 和 NULLIF 都与空值(NULL)的判断或处理有关,但它们的用途和语义不同

1. ISNULL(expr) → 判断是否为 NULL

功能:返回 1(真)如果表达式为 NULL,否则返回 0(假)
示例

SELECT ISNULL(NULL);       -- 结果:1
SELECT ISNULL(123);        -- 结果:0
SELECT ISNULL(name) FROM users;

2. IFNULL(expr1, expr2) → NULL 值替换

功能:如果 expr1 是 NULL,返回 expr2;否则返回 expr1。
常用于:空值替换为默认值
示例

SELECT IFNULL(NULL, 'default');     -- 结果:'default'
SELECT IFNULL('hello', 'default');  -- 结果:'hello'
-- 示例:替换用户昵称为空时的默认名称
SELECT IFNULL(nickname, '匿名') AS display_name FROM users;

等价于:

CASE WHEN nickname IS NULL THEN '匿名' ELSE nickname END

3. NULLIF(expr1, expr2) → 相等则返回 NULL

功能:如果 expr1 = expr2,返回 NULL;否则返回 expr1
常用于:避免除零错误,或“两个值相同视为无效”的判断
示例

SELECT NULLIF(5, 5);   -- 结果:NULL
SELECT NULLIF(5, 3);   -- 结果:5
-- 示例:除法避免除以 0
SELECT 10 / NULLIF(denominator, 0) FROM numbers;

总结

函数名主要用途示例结果
ISNULL(x)判断是否为 NULLISNULL(NULL)1
IFNULL(x, y)如果 x 是 NULL,返回 yIFNULL(NULL, 'N/A')‘N/A’
NULLIF(x, y)如果 x = y,返回 NULLNULLIF(5, 5)NULL

补充:MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用

在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函数进行流程的控制。

1、IF()函数的使用

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

SELECT IF(TRUE,'A','B');    -- 输出结果:A
SELECT IF(FALSE,'A','B');   -- 输出结果:B

2、IFNULL()函数的使用

IFNULL(expr1,expr2),如果expr1的值为null,则返回expr2的值,如果expr1的值不为null,则返回expr1的值。

SELECT IFNULL(NULL,'B');    -- 输出结果:B
SELECT IFNULL('HELLO','B'); -- 输出结果:HELLO

3、NULLIF()函数的使用

NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值为null,否则返回值为expr1的值。

SELECT NULLIF('A','A');     -- 输出结果:null
SELECT NULLIF('A','B');     -- 输出结果:A

4、ISNULL()函数的使用

ISNULL(expr),如果expr的值为null,则返回1,如果expr1的值不为null,则返回0。

SELECT ISNULL(NULL);        -- 输出结果:1
SELECT ISNULL('HELLO');     -- 输出结果:0

到此这篇关于Mysql中isnull,ifnull,nullif的用法的文章就介绍到这了,更多相关mysql isnull,ifnull,nullif用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文