当列是varchar时,在mysql中查找max

Fel*_*sel 7 mysql

我有一个varchar字段,它是字母代码并且是自动递增的(manualy),所以在A之后是B直到Z变为AA之后,依此类推.

我的问题是当我点击AA并尝试选择此字段的MAX时:

SELECT MAX(letter) from jobs
Run Code Online (Sandbox Code Playgroud)

返回Z而不是AA.如果您要订购名称,这是正确的,但我有一个代码.有办法做到这一点吗?

Kev*_*ker 8

试试这个吧.这会强制它将较长的字符串加权为高于较短的字符串:

SELECT letter
FROM jobs
ORDER BY LENGTH(letter) DESC, letter DESC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

编辑:是的,忘记对DESC进行排序以获得MAX ...


joc*_*ull 2

这可能有帮助吗?首先按长度排序,然后按字母排序。

SELECT letter FROM jobs
ORDER BY LENGTH(letter) DESC, letter DESC
LIMIT 0, 1
Run Code Online (Sandbox Code Playgroud)