MariaDB版本:if语句差异

时间:2016-08-10 18:17:05

标签: if-statement mariadb

我们最近开始了迁移到新服务器的工作。

当前服务器正在运行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?的任何想法? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

MariaDB 5.5.40修复了十进制类型" - 我不知道这是否改变了您的用例以及他们是否认为这是"修复"而不是"休息"。

如果您愿意,请提交错误。

FWIW,MySQL 5.6.12产生10