Mysql 判空函数详解 isnull()、ifnull()

本文详细介绍了数据库中用于处理空值的函数,包括`isnull()`用于检查表达式是否为空,`ifnull()`用以替换空值,`nullif()`判断两个表达式是否相等,以及`if()`条件判断函数。通过示例展示了这些函数的使用方法,帮助理解如何在SQL查询中有效管理空值和执行条件判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

判空
isnull(expr):expr 是否为空
1(是),0(否)
返回值
ifnull(expr1, expr2):expr1 是否为空
expr2(是),expr1(否)

2 示例

2.1 isnull(expr):expr 是否为空

-- 判断 expr 是否为空
---- 若是,返回 1
---- 若否,返回 0
isnull(expr): return 1 or 0

示例:

select isnull(null), -- 1
       isnull('a'), -- 0
       isnull('')-- 0
  from dual;

2.2 ifnull(expr1, expr2):expr1 是否为空

-- 判断 expr1 是否为空
---- 若是,返回 expr2
---- 若否,返回 expr1
ifnull(expr1, expr2): return expr2 or expr1

示例:

select ifnull(null, '2'),  -- '2'
       ifnull('1', null),  -- '1'
       ifnull(null, null)  -- null
  from dual;

3 扩展

3.1 nullif(expr1, expr2):俩表达式是否相等

-- 判断 expr1 = expr2 是否成立
---- 若是,返回 null
---- 若否,返回 expr1
nullif(expr1, expr2)return null or expr1

示例:

select nullif('1', '1'),  -- null
       nullif('1', '2')   -- '1'
  from dual;

3.2 if(expr1, value1, value2):expr1 是否成立

-- 判断 expr1 是否为 True
---- 若是,返回 value1
---- 若否,返回 value2
-- 小提示:0:False,非0:True
if(expr, value1, value2): return value1 or value2

示例:

select if(1 = 1, '是', '否'),  -- 是
       if(1 = 2, '是', '否')   -- 否
  from dual;

3.3 coalesce(value1, valueN):返回第一个非空值

-- 返回多个值中,第一个非空的值
select coalesce(null, null, '1', '2')  -- '1'
  from dual;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼丸丶粗面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值