你好,我在列中有一些值,比如:8106.8499999999985
所以我想把它修复成:8106.85
我试着做了以下
mysql_query("Update statements set Balance = '".round("Balance",2)."' where CHAR_LENGTH(Balance) > 8");
我想遵循同样的方式:更新语句集Balance=Balance+1,其中。。。
任何解决方案
这应该可以做到:
UPDATE statements SET Balance = ROUND(Balance, 2);
不需要将PHP与级联一起使用,只需将其运行为:
mysql_query("UPDATE statements SET Balance = ROUND(Balance, 2)");
旁白:mysql_*
不安全。您应该使用mysqli_*
。
假设您使用的是数字数据类型(而不是VARCHAR
),除非最后一位小数是零,否则四舍五入到小数点后2位:
UPDATE statements SET Balance = IF(RIGHT(ROUND(Balance, 2), 1) = 0, ROUND(Balance, 1), ROUND(Balance, 2));
如果使用VARCHAR
,请将0
更改为'0'
(然后使用ALTER TABLE
修复数据类型)。
这是一个演示。