我想将 woo commerce 数据库表 wp_postmeta
中的数字四舍五入到小数点后两位。
有一列 'meta_key'
和行 '_price'
和一列 'meta_value'
其中包含各种数据以及'_price'
行中需要四舍五入并减少到小数点后两位的数字。
(我知道我也必须为 _regular_price
这样做)
我是 SQL 的初学者。我已经设法在 PHPMyAdmin 中做了一些事情,方法是使用搜索为我提供语法或复制和更改在网上找到的答案,但这让我很困惑,只是知识还不够。
我设法通过此查询为所有价格增加了 10% -
update wp_postmeta set meta_value = meta_value * 1.10 where meta_key='_regular_price'
我读到有一个“ROUND”函数,但不确定如何编写查询。
我猜它会是这样的——
UPDATE wp_postmeta ROUND meta_value where meta_key='_price'
希望这里有人能提供帮助。
最佳答案
ROUND(X)
,ROUND(X,D)
Rounds the argument X to D decimal places. [...] D defaults to 0 if not specified.
所以你的 update
会是:
UPDATE wp_postmeta
SET meta_value = ROUND(meta_value, 2)
WHERE meta_key='_price'
显示格式
如果您关心的是显示具有 2 个小数位的数字,最好保持原样的完整精度,但更改您选择
值的方式从你的 table 上,还有我们format
:
没有上述更新,您仍然可以这样做:
SELECT FORMAT(meta_value, 2)
FROM wp_postmeta
WHERE meta_key='_price'
如果您的表中有值 15.002916,则上面的 select
会将其呈现为字符串:15.00
。
最后,如果 meta_value
的数据类型是 varchar
(因此,不是数字数据类型),您当然可以存储额外的尾随零:
UPDATE wp_postmeta
SET meta_value = FORMAT(meta_value, 2)
WHERE meta_key='_price'
但是请注意,如果数据类型是文本类型,这只会按预期工作。在数字数据类型中,值 15.00 和 15 完全相同;只是它们的显示格式不同。
关于mysql - 如何使用 MySql 查询将数据库中的数字四舍五入到小数点后两位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38322109/