mysql 数字字母排序
有a表如下字段
id 1 a 2 b 3 c
排序后要得到
id a b c 1 2 3
也就是说字符按照字符来排序,数字按照数字来排序
看过一个解决方案
select Id from a order by (case when REGEXP_LIKE(trim(Id),'^[0-9]+$') then ascii(Id)+74 else ascii(Id) end)
结果mysql不能识别 REGEXP_LIKE
------解决方案--------------------
- SQL code
select 'id' as ch union select '1' union select 'a' union select '3' union select 'c' union select '2' union select 'b' order by length(ch) desc, ch+0=0 desc, ch