我想在woo商务数据库表wp_postmeta
中将数字四舍五入到2个小数点。
列'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'
希望有人可以提供帮助。
答案 0 :(得分:5)
ROUND(X)
,ROUND(X,D)
将参数X舍入到D小数位。 [...]如果未指定,D默认为0。
所以你的update
将是:
UPDATE wp_postmeta
SET meta_value = ROUND(meta_value, 2)
WHERE meta_key='_price'
如果你关心的是显示一个带有2位小数的数字,那么保持完整的精确度可能会更好,但是改变你的select
值的方式和我们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 完全相同;只是他们的显示格式不同。
答案 1 :(得分:0)
您可以使用Round Function对列进行舍入, 使用这样的函数:
SELECT ROUND(column_name,decimals) FROM table_name;
在这种情况下写下面的查询:
select Round(_Price , 2) from your table name