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) | 判断是否为 null | isnull(null) | 1 |
ifnull(x, y) | 如果 x 是 null,返回 y | ifnull(null, 'n/a') | ‘n/a’ |
nullif(x, y) | 如果 x = y,返回 null | nullif(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用法内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论