是否可以使用mysql函数找到一列 float 的最小值?假设我有下表:
id | value
a | 24.88
a | 119.99
如果我尝试:
SELECT MIN(value) FROM [表名] GROUP BY id;
mysql 返回:
119.99
在使用不同的 float 进行测试后,我相信情况是这样的,因为mysql采用每个字符串“1”和“2”中的第一个字符,然后根据哪个字符较小来选择最小值。
我已经浏览过这个论坛和其他人试图找到答案,但似乎没有人提出这个问题。
我应该提到我也尝试过 CEIL(value),但该函数似乎也有一些错误,我更愿意将数字保留为 float 而不是整数。
谢谢大家。
最佳答案
看起来该列正在存储为基于字符的数据类型。您可以通过以下两种方法之一解决此问题:
- 将列类型更改为数字类型
- 更改查询以在值周围添加 CAST:
MIN(CAST(value AS DECIMAL))
列更改可能如下所示:
ALTER TABLE my_table MODIFY COLUMN value double;
并且,据我所知,MySQL将尝试为您转换数据。请参阅the note here ,它表示“尝试”。
关于mysql float 最小值列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11388250/