gpt4 book ai didi

mysql - 替换查询时异常的 mysql 行为

转载 作者:行者123 更新时间:2023-11-29 04:25:44 25 4
gpt4 key购买 nike

我使用 v 简单数据库,我有 3 列 A(bigINT 20)、B(bigInt 20) 和 c(DECIMAL(5,4)),当我触发以下查询时,我得到以下结果:

REPLACE INTO `my_table` SET `A` = 8,`B` = 44,`C` = 14;

我在 mysql 中得到这些值 A =8 , b= 44 和 c 为 9.9999 ! ?

关于为什么会发生这种情况以及我能做些什么来解决这个问题有什么想法吗?

最佳答案

DECIMAL(5,4) 表示该数最多有 5 位,小数点后有 4 位。所以 14 只是溢出,因为它需要 DECIMAL(6,4)

必须清楚 14 是溢出,因为作为常量精度小数点它在内部是 14.0000 这里(所以六位数超过五)。

因此,如果您尝试将 14.0000(六位数)放入 DECIMAL(5,4)(最多五位数)-> MySQL 选择最接近您的值要求。因此 14.0000 被“四舍五入”为 9.9999

要在您的列中容纳 14,您可以将其扩展为 DECIMAL(6,4)(通常允许更多数字)或更改为 DECIMAL (5,3)(这将允许在小数点前多一位数字,但当然会失去一些精度)。

关于mysql - 替换查询时异常的 mysql 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12037713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com