gpt4 book ai didi

php - 获取一轮剩余时间

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

我有一个用例,其中 MySQL 中有一个列包含一个数字,例如 12.458

我需要获取这些数字的列表,并且需要在数据库中更新它们,以便四舍五入到小数点后两位,我意识到它仍然会在数据库中存储小数点后三位,但我的意思是这样我给出的示例四舍五入为 12.460

我知道我可以通过 MySQL 轻松完成此操作,然后使用以下查询获取数据,没有任何问题;但是我不想这样做,以防数据在舍入和我实际选择它的时间内更新。

所以我想如果只是选择它然后用 PHP 对其进行四舍五入,例如..

$amount = round($amount, 2);

...是的,自从我选择它以来,数据库中的数据现在可能再次发生更改;但这不是重要的部分 - 重要的部分是对数据库中的金额运行 -+ 操作。

所以我想做的基本上是获取本轮的剩余结果,然后在 mysql 字段上运行操作..

所以...

12.457 = 12.46 = +0.003 to field
12.421 = 12.42 = -0.001 to field

不幸的是,该表不是 InnoDB,我无法锁定它以防止更新。

有更好的方法来做我想做的事吗?

编辑:您可以同时执行SELECTUPDATE,以便从选择中获取更新的数据吗?

最佳答案

CREATE TABLE YourTable
(`ExistingValue` decimal(12,3), `ExtraValue` decimal(12,3))
;

INSERT INTO YourTable
(`ExistingValue`, `ExtraValue`)
VALUES
(12.458, null)
;

update YourTable
set
ExtraValue = ExistingValue - Round(ExistingValue,2)
, ExistingValue = Round(ExistingValue,2)
;
select
*
from YourTable

| EXISTINGVALUE | EXTRAVALUE |
|---------------|------------|
| 12.46 | -0.002 |

Demo

关于php - 获取一轮剩余时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25361129/

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