目录
- 前言
- IFNULL
- COALESCE
- 总结
前言
数据库中有些字段可能是null或统计字段也可能是NULL,这些前端拿到数据显示出来是空白,遇到这种情况,有必要将null的字段设置一个默认值。将NULL值的字段设置默认值的函数有IFNULL(expr1,expr2)和COALESCE(value,…),下面我们来一起学习学习。
IFNULL
语法
IFNULL(expr1,expr2)
功能
如果expr1表达式不为null,则返回expr1的值,否则返回expr2的值。
实例
-- 如果bottle_code字段为NULL 则返回 '0000'
SELECT IFNULL(bottle_code,'0000') FROM goods_detail;-- 如果SUM(purch_volume) 结果为NULL,则返回 0
SELECT IFNULL(SUM(purch_volume),0) FROM purch_item
COALESCE
语法
COALESCE(expression1,...n)
功能
返回参数列表中第一个不为NULL的表达式的值,如果所有参数都为NULL则返回NULL
COALESCE(expression1,…n) 与此 CASE 函数等价
CASE
WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN
ELSE NULL
实例
-- 先判断bottle_code的值是否为null,如果为null再判断bar_code是否为null,如果还是为null,则返回100
SELECT COALESCE(bottle_code,bar_code,1000) FROM goods_detail-- 判断 SUM(purch_volume)的结果是否为null,如果为null则返回 0
SELECT COALESCE(SUM(purch_volume),0) FROM air_purch_item
总结
MYSQL的函数很多,遇到实用的函数一定要将其记录下来,日积月累,积累多了你会发现写sql非常简单。