我在 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 ...