mysql 四舍五入到最接近的.49或.99

lrpiutwd  于 2022-10-31  发布在  Mysql
关注(0)|答案(3)|浏览(178)

我想将SQL查询向右舍入到最接近的.49或.99
我目前使用FLOOR或TRUNCATE函数将其写为舍入到.99,没有问题

UPDATE wp_postmeta 
SET meta_value=meta_value*1.39
WHERE meta_key='_saleprice' OR meta_key='_price';
UPDATE wp_postmeta
SET meta_value = FLOOR(meta_value) + 0.99
WHERE meta_key='_price' OR meta_key='_saleprice’;

这首先将价格乘以1.39,然后FLOORS(在小数点后四舍五入到最接近的整数后删除),然后将0.99加到最后......实际上,总的来说,这四舍五入到最接近的0.99

PRICE AFTER *1.39          PRICE AFTER ROUNDING
10.00                                                10.99
10.49                                                10.99
10.50                                                10.99
10.99                                                10.99
11.00                                                11.99
11.49                                                11.99
11.50                                                11.99
11.99                                                11.99

我想要实现的是

PRICE AFTER *1.39          PRICE AFTER ROUNDING
10.00                                                10.49
10.49                                                10.49
10.50                                                10.99
10.99                                                10.99
11.00                                                11.49
11.49                                                11.49
11.50                                                11.99
11.99                                                11.99

我如何才能最好地实现这一目标?期待一些建议
谢谢
亨利

lbsnaicq

lbsnaicq1#

下面的代码应该可以做到这一点:


* 2.0, trunc down, divide by 2, add 0.49
kgsdhlau

kgsdhlau2#

以下方法似乎有效:

select ceil(meta_value * 2 + 0.001)/2 - 0.01

这有点棘手,因为10.50应该是10.99,而不是10.49。

bxgwgixi

bxgwgixi3#

jarlh提供的不错的解决方案

  • 2.0,向下取整,除以2,加上0.49

手段
底价(价格 *2)/2 +.49

相关问题