2012-07-09 57 views
1

使用mysql函数可以找到浮动数字列的最小值吗?假设我有下表:浮动数字的mysql最小值列

id |值
a | 24.88
a | 119.99

如果我尝试:

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

MySQL的回报:
119.99

不同的浮点数测试此之后,我认为,这种情况下因为MySQL采用的第一个字符在每个字符串“1”和“2”中,然后根据哪个字符更小来选择min。

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

我应该提到我也尝试CEIL(值),但该函数也似乎有一些错误,我宁愿保持号码浮动数字,而不是一个整数。

谢谢大家。

回答

2

它看起来像列被存储为基于字符的数据类型。

  1. 更改列类型为数值型
  2. 改变查询并增加围绕价值CAST:MIN(CAST(value AS DECIMAL))

列更改可能看起来像您可以通过以下两种方式之一解决这个这样的:

ALTER TABLE my_table MODIFY COLUMN value double; 

而且,据我所知,MySQL的尝试将数据转换为您服务。请参阅the note here,其中指出“尝试”。

+0

非常感谢ctrahey。你救了我很多时间,我是个白痴。在你的建议之前,我实际上已经对我的列类型进行了仔细检查,看到了CHAR,并发现由于它不是VARCHAR,所以我没事。我忘了CHAR不是数字类型。谢谢一堆。 – 2012-07-09 01:59:19

+0

乐意帮忙!欢迎来到SO。当你接受答案时,它会使整个社区(特别是你和我)受益:-) – 2012-07-09 02:15:03