我们最近开始了迁移到新服务器的工作。
当前服务器正在运行MariaDB版本5.5.28
新服务器正在运行MariaDB版本5.5.47。
当我们在MariaDB版本5.5.28上运行这些查询时,我们得到相同的答案:
SELECT IF(1< 2,10,20); 。 。 。 。 。 。 。答案:10
SELECT IF(1< 2,10,20.000); 。 。 。答案:10
在MariaDB版本5.5.47上运行时,我们得到不同小数位数的答案:
SELECT IF(1< 2,10,20); 。 。 。 。 。 。 。答案:10
SELECT IF(1< 2,10,20.000); 。 。 。答案:10.000
在版本5.5.47中,即使条件的计算结果为true,也会发生错误结果(20.000)的格式化以确定真实结果的格式(10)。
为什么查询会返回10.000而不是10?的任何想法? 提前谢谢。
答案 0 :(得分:0)
MariaDB 5.5.40修复了十进制类型" - 我不知道这是否改变了您的用例以及他们是否认为这是"修复"而不是"休息"。
如果您愿意,请提交错误。
FWIW,MySQL 5.6.12产生10
。