如何使用MySql查询将数据库中的数字四舍五入到小数点后两位

Sti*_*nut 3 mysql decimal rounding

我想将woo Commerce数据库表中的数字四舍五入到2个小数点wp_postmeta。有一个'meta_key'包含row的列'_price'和一个'meta_value'包含各种数据的列以及该行'_price'中需要四舍五入并减少到两位小数的数字。(我知道我也必须这样做_regular_price

我是SQL的完整入门者。通过使用Search给我语法或复制和更改网上找到的答案,我已经成功地在PHPMyAdmin中做了一些事情,但是这使我感到困惑,但还不够足够。

我设法通过此查询将所有价格都提高了10%-

update wp_postmeta set meta_value = meta_value * 1.10 where meta_key='_regular_price'
Run Code Online (Sandbox Code Playgroud)

我读过有一个“ ROUND”功能,但不确定如何编写查询。

我猜是这样的-

UPDATE wp_postmeta ROUND meta_value where meta_key='_price'
Run Code Online (Sandbox Code Playgroud)

希望这里有人能帮忙。

tri*_*cot 6

上的文档round说:

ROUND(X)ROUND(X,D)

将参数X舍入到D小数位。[...]如果未指定,D默认为0。

因此,您update将是:

UPDATE wp_postmeta 
SET    meta_value = ROUND(meta_value, 2)
WHERE  meta_key='_price'
Run Code Online (Sandbox Code Playgroud)

显示格式

如果您要显示的数字是2位小数,则最好保持原样的精确度,但要更改select表和我们的赋值方式format

如果没有上述更新,您仍然可以这样做:

SELECT FORMAT(meta_value, 2)
FROM   wp_postmeta
WHERE  meta_key='_price'
Run Code Online (Sandbox Code Playgroud)

如果您的表格中的值为15.002916,则上述内容select会将其呈现为字符串:15.00

最后,如果的数据类型meta_valuevarchar(因此,不是数字数据类型),那么您当然可以存储其他尾随零:

UPDATE wp_postmeta 
SET    meta_value = FORMAT(meta_value, 2)
WHERE  meta_key='_price'
Run Code Online (Sandbox Code Playgroud)

但是要意识到,仅当数据类型是文本类型时,这才可以按预期工作。在数字数据类型中,值15.00和15 完全相同。只是他们的显示格式有所不同。