错误值MySQL中的Max函数

时间:2015-02-22 21:24:49

标签: mysql database

我在一列上尝试max()和min()函数,但它给了我错误的结果。

数字是1500,500,200,800和700.

当我查询

select max(trip_total_catches_kg) 
from trips

它给我结果800,它应该是1500,最小值给我1500.

为什么它给我错误的结果?

4 个答案:

答案 0 :(得分:2)

作为评论中提到的@marc_s,我会仔细检查trip_total_catches_kg列的类型是否为数字(integer),而不是字符串(varchar(255))。

如果列是字符串类型,您描述的行为将有意义,如@marc_s所说:

  

800是“最大” - 因为第一个位置的数字8是这些字符的最大

答案 1 :(得分:1)

如@marc_s评论的那样...... 这是因为列类型,它是char / varchar而不是整数。

这是一个sqlfiddle作为演示。 http://sqlfiddle.com/#!2/0ab63/1

将您的列转换为整数。

  

alter table trips修改trip_total_catches_kg int;

答案 2 :(得分:0)

也许值的类型为varchar,将它们转换为integer,然后获取maxmin

SELECT MAX(CONVERT(trip_total_catches_kg,UNSIGNED INTEGER))
FROM trips;

答案 3 :(得分:0)

最简洁的回答:

select max(0 + trip_total_catches_kg) from trips;