MySQL MAX返回错误的结果

时间:2016-04-01 03:29:16

标签: mysql max

我有一个表格,其中'text'列(使用text数据类型)的数值介于0-2000之间。

当我在下面执行以下MySQL函数时,查询结果的值为990而不是2000.有人会想到为什么会这样吗?

提前致谢:

SELECT max(text) FROM table

4 个答案:

答案 0 :(得分:2)

首先将文本字段转换为CREATE INDEX pattern_index ON table (words varchar_pattern_ops);

unsigned int

答案 1 :(得分:0)

在将text传递给max()之前,您必须将select max(cast(text as integer)) from table的类型转换为数字。

例如:text

如果prototype中的所有值都不是数字,则可能会失败。

答案 2 :(得分:0)

绝对不是“不正确”的结果。 Per the documentation

  

MAX()可以采用字符串参数;在这种情况下,它返回   最大字符串值。

“990”绝对是在“2000”之后出现的。

答案 3 :(得分:0)

你已经在文本类型中设置了列,因此它们在文本类型中进行比较(990大于2000)。你应该用数字类型比较它们,你可以像SELECT max(text * 1)FROM table < / p>