日期:2014-05-17  浏览次数:20529 次

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