从表格问题中选择最大值

时间:2011-12-21 00:09:43

标签: mysql sql

我有一组如下数据:

Id           Name
==           ======
1            name1
10           name10
2            name2
3            name3
4            name4
5            name5
6            name6
7            name7
8            name8
9            name9

如果我写从表中选择max(id),它会假设将10作为最大值对吗? 为什么我总是得到结果9而不是10?出了什么问题?

2 个答案:

答案 0 :(得分:8)

据推测,Id是字符串而不是数字数据类型。

您应该将其更改为更合适的数据类型,例如integer

如果无法做到这一点,那么您需要对数值数据类型进行强制转换。例如MAX(CAST(Id AS UNSIGNED))但我建议修理它。

答案 1 :(得分:4)

我的猜测,您的Id列不是数字而是varchar,所以它按字母顺序排序,而不是数字排序。