兔八哥极品软件园    运行: 2154天 | 文章:536 篇 | 评论:8 条 | 碎语:1条

Mysql 字段为null的加减乘除运算

作者:admin 发布于:2017-6-6 10:00 Tuesday

CleverCode最近在导出报表的时候,在整数做减法的时候,发现整数减去null得到是null。这是一个细节问题,希望大家以后注意。

1 表中的数据

total,used都是整形,允许为空。

2 有问题的运算语句

减法问题
[sql] view plain copy
  1. select   
  2.     id,  
  3.     total,  
  4.     used,  
  5.     (total - used) as have   
  6. from test_table  

3 正确的写法

使用ifnull,来处理null。
[sql] view plain copy
  1. select   
  2.     id,  
  3.     ifnull(total,0) as total,  
  4.     ifnull(used,0) as used,  
  5.     (ifnull(total,0) - ifnull(used,0)) as have   
  6. from test_table  



4 建议


1) 在设计表的时候,如果发现这列是需要运算的列,建议设置默认值,比如0;
2) 在整形列的运算的时候,不管是加,减,乘,除等。都需要使用ifnull,对列进行处理。否则报表数据就会错。

这些都是细节小问题,大家一看就能明白,希望大家在细节上注意,否则一份财务表报计算出错了,那后果是很严重的!


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap