我有一个SQL查询,如:
UPDATE t_example
SET column1=column2/column3
where 'SOME CLAUSE'
假设column2的值为7而column3的值为1,则column1应该在此语句之后设置为值7,但它始终为6而不是7.对于divisor为1的任何值对,结果总是小于1。我没有检查除1以外的值,但为什么会出现这种情况?
答案 0 :(得分:3)
您的column2
可能是浮点数,column1
是int
。如果计算结果为6.999999999
,则转换为int
的结果为6
。
如果您需要准确的精确度,则应使用定点数据类型like decimal
。
答案 1 :(得分:0)
尝试使用MYSQL中的ROUND()
函数,如下所示
NSERT INTO t_example SET column1 = ROUND(column2 / column3)