当在SQL中,当需要对某一字符串字段排序,比如编号。编号的规律是前缀固定,但是后缀长度不一致,比如2003201、2003202、…、20032011,或者是AE2003201、AE2003202、…、AE20032011。怎么办?
SELECT
*
FROM
`dev`.`prm_spell_group`
WHERE
`code` LIKE '240320%'
ORDER BY
substr(code,7)*1 desc
LIMIT 1 OFFSET 0
上边这是实测的最佳方案,不能单纯乘以1,假如不是纯数字没辙了。
不能以长度+字段双重排序(即order by length(code),code desc)