我在 mysql DB 中有一个rating
数据类型为 的字段float(2,1)
。一行包含一个值0.5
,但是当我使用
SELECT round(rating) FROM table WHERE ...
给出值 0 而不是 1。
但SELECT round(0.5)
给出了价值1
(对于 Postgresql 也是)。
此外,PHP 总是1
为echo round(0.5);
我真的很困惑。
我在 mysql DB 中有一个rating
数据类型为 的字段float(2,1)
。一行包含一个值0.5
,但是当我使用
SELECT round(rating) FROM table WHERE ...
给出值 0 而不是 1。
但SELECT round(0.5)
给出了价值1
(对于 Postgresql 也是)。
此外,PHP 总是1
为echo round(0.5);
我真的很困惑。
将您的数据类型从 float(2,1) 更改为 decimal(2,1) 它可能对您有用。
尝试SELECT ROUND(rating)
代替SELECT ROUND('rating')
.
对字符串进行四舍五入可能会给您带来奇怪的结果。您可能在列值之后,它不应该用'
.
和
SELECT round('rating') FROM table WHERE ...
你正在四舍五入字符串 'rating' ,这就是为什么它给你零
试试这个
SELECT round(rating) FROM table WHERE ...