Mysql整数运算NULL值处理注意点

最后更新于:2022-04-01 10:12:23

CleverCode最近在导出报表的时候,在整数做减法的时候,发现整数减去null得到是null。这是一个细节问题,希望大家以后注意。 ### 一,表中的数据 total,used都是整形,允许为空。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-29_56fa2a0bd8347.jpg) ### 二,有问题的运算语句 减法问题 ~~~ select id, total, used, (total - used) as have from test_table ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-29_56fa2a0c02f6a.jpg) ### 三,正确的写法 使用ifnull,来处理null。 ~~~ select id, ifnull(total,0) as total, ifnull(used,0) as used, (ifnull(total,0) - ifnull(used,0)) as have from test_table ~~~ ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-29_56fa2a0c1f88b.jpg) ### 四,建议 1) 在设计表的时候,如果发现这列是需要运算的列,建议设置默认值,比如0; 2) 在整形列的运算的时候,不管是加,减,乘,除等。都需要使用ifnull,对列进行处理。否则报表数据就会错。 这些都是细节小问题,大家一看就能明白,希望大家在细节上注意,否则一份财务表报计算出错了,那后果是很严重的! ### 版权声明: 1)原创作品,出自"CleverCode的博客",请勿转载,否则追究版权法律责任。 2)原创地址:[http://blog.csdn.net/clevercode/article/details/47035975](http://blog.csdn.net/clevercode/article/details/47035975)。 3)分类地址(Mysql数据库总结):[http://blog.csdn.net/clevercode/article/category/3262205](http://blog.csdn.net/clevercode/article/category/3262205)(博客持续增加,关注请收藏) 4)欢迎大家关注我博客更多的精彩内容:[http://blog.csdn.net/CleverCode](http://blog.csdn.net/CleverCode)。
';