MySQL将null转0 ifnull() coalesce()实践
更新时间:2026年06月17日 14:33:35 作者:globalcoding
这段文章详细介绍了SQL中IFNULL()和COALESCE()函数的使用方法,用于处理查询结果中的null值,避免代码中频繁的判空操作,IFNULL()函数仅支持一个替代值,而COALESCE()则支持多个替代值,灵活应对null值的不同场景
做统计报表的时候,有时候不希望查出来的值是null,因为在代码中需要做大量的判空,最后转换成0来处理。
既然如此,那在sql中查出来就是0,就不用为空而去判空了。
1.IFNULL()
ifnull()只能放2个值。
select IFNULL(null,0);
使用举例:
如果工资为null,就设为0
select IFNULL(salary,0) from emp
求和,如果最后值为null,设为0
select IFNULL(sum(salary),0) from emp
2.COALESCE()
coalesce()可以放入多个值。
select coalesce(null,null,0); --结果为 0 select coalesce(null,null,null,0); --结果为 0 select coalesce(null,null,null,1,2); --结果为 1
如果第1个值为null,就看第2个值,如果第2个值不为null,就使用第2个。以此类推。
使用举例:
查出工资比 JOHN 低的员工。如果有人的工资为null,就默认为0。
select ename,salary from emp where coalesce(salary,0) < (select salary from emp whrer ename ="JOHN");
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
mysql 5.7.11 winx64.zip安装配置方法图文教程
这篇文章主要为大家分享了mysql5.7.11安装配置方法图文教程,具有一定的参考价值,感兴趣的朋友可以参考一下2017-02-02


最新评论