从MySQL中的varchar列获取最大值

从MySQL中的varchar列获取最大值,mysql,max,Mysql,Max,我需要从varchar类型的列中获取最大值。该值不太复杂,只是简单的值,如car001(无空格)、car002(无空格)、car003(无空格) 我尝试了其他类似问题的任何答案,但它总是在我的SQL语法中出错,我最后一次尝试的是 SELECT MAX(CONVERT(`code`, UNSIGNED)) AS MAX FROM `account` ,但我得到的是0。真实的必须是案例中的3。请帮帮我,很抱歉英文不好。尝试使用子字符串\u INDEX来隔离数字部分: SELECT * FROM y

我需要从varchar类型的列中获取最大值。该值不太复杂,只是简单的值,如
car001
(无空格)、
car002
(无空格)、
car003
(无空格)

我尝试了其他类似问题的任何答案,但它总是在我的SQL语法中出错,我最后一次尝试的是

SELECT MAX(CONVERT(`code`, UNSIGNED)) AS MAX FROM `account`

,但我得到的是0。真实的必须是案例中的3。请帮帮我,很抱歉英文不好。

尝试使用
子字符串\u INDEX
来隔离数字部分:

SELECT *
FROM yourTable
WHERE SUBSTRING_INDEX(col, ' ', -1) = (SELECT MAX(SUBSTRING_INDEX(col, ' ', -1))
                                       FROM yourTable);
假设只有一条记录具有max ID,我们可以更简单地使用
LIMIT
查询:

SELECT *
FROM yourTable
ORDER BY SUBSTRING_INDEX(col, ' ', -1) DESC
LIMIT 1;
试试这个

select max(SUBSTRING_INDEX(col, ' ', -1)) from TableName

位数
001
是固定的还是可以变化的?它将是固定的,只需假设它是自动增量值。直到最高999