UserID UserName Password
1 abc 123
10 xyz 456
3 mno 254
SELECT MAX(UserId) AS UserId FROM UserLogin
当我运行此查询时,它给了我3而不是10
所有列都是TEXT数据类型
答案 0 :(得分:10)
您的查询正在返回3
,因为考虑到字典顺序,它是一个较大的值(以3
开头的任何内容都被视为大于以1
开头的内容,就像以{{{{1}开头的内容一样1}}大于以b
开头的任何内容。
使用VAL
函数将TEXT列转换为数值:
a
如果您担心性能问题,则应将此列设为数字。考虑到你正在为表中的每一行调用一个函数。此外,它不会使用此列可能具有的任何索引。
答案 1 :(得分:5)
确保列类型为数字,而不是varchar或string。
答案 2 :(得分:2)
尝试更改
SELECT MAX(val(UserId)) AS UserId FROM UserLogin