我有一组如下数据:
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?出了什么问题?
答案 0 :(得分:8)
据推测,Id
是字符串而不是数字数据类型。
您应该将其更改为更合适的数据类型,例如integer
。
如果无法做到这一点,那么您需要对数值数据类型进行强制转换。例如MAX(CAST(Id AS UNSIGNED))
但我建议修理它。
答案 1 :(得分:4)
我的猜测,您的Id列不是数字而是varchar,所以它按字母顺序排序,而不是数字排序。