2

是否可以使用mysql函数找到一列浮点数的最小值?假设我有下表:

编号 | 值
a | 24.88
一个 | 119.99

如果我尝试:

SELECT MIN(value) FROM [table name] GROUP BY id;

mysql 返回:
119.99

在用不同的浮点数测试之后,我相信是这种情况,因为 mysql 在每个字符串“1”和“2”中取第一个字符,然后根据哪个字符更小来选择一个最小值。

我已经阅读了这个论坛和其他人试图找到答案,但似乎没有人提出这个问题。

我应该提到我也尝试过 CEIL(value) 但该函数似乎也有一些错误,我更愿意将数字保持为浮点数而不是整数。

感谢大家。

4

1 回答 1

2

看起来该列被存储为基于字符的数据类型。您可以通过以下两种方式之一解决此问题:

  1. 将列类型更改为数字类型
  2. 更改查询以在值周围添加 CAST:MIN(CAST(value AS DECIMAL))

列更改可能如下所示:

ALTER TABLE my_table MODIFY COLUMN value double;

而且,据我所知,MySQL尝试为您转换数据。请参阅此处的注释,其中指出它“尝试”。

于 2012-07-09T01:52:14.583 回答