Php mysql 更新为相同的记录值并使用 round 函数修复

标签 php mysql

你好,我在列中有一些值,例如:8106.8499999999985

所以我想把它修成这样:8106.85

我尝试了以下操作

mysql_query("Update statements set Balance = '".round("Balance",2)."' where CHAR_LENGTH(Balance) > 8");

我想遵循相同的方式:更新语句 set Balance = Balance + 1 where...

任何解决方案

最佳答案

这应该可以解决问题:

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 修复数据类型)。

这是 a demo .

关于Php mysql 更新为相同的记录值并使用 round 函数修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447105/

相关文章:

php - 我的 sql 文件上传需要 "if/else"语句

php - 从 Laravel 中的 url 获取最新的 slug

php - 用 php、html 制作 Facebook 相册幻灯片? jquery?

mysql - 选择不同的数据库进行连接 - mysql

php - 将值插入数据库的问题

java - 如何在Java/MySQL中查询继承的类类型?

php - 管理网站用 SQL 保存的图像的最佳方法是什么?

javascript - 时区转换

php - MySQL 使用 codeIgniter active query 或 alt 搜索所有文件。转义(像+等于)

php - Codeigniter 查询 count() 连接三个表的评论总数