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

时间:2018-03-09 10:52:43

标签: mysql sql database

我想要将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

我如何才能实现这一目标?期待一些建议

由于

亨利

2 个答案:

答案 0 :(得分:1)

以下似乎有效:

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

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

答案 1 :(得分:1)

以下应该可以解决问题:

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