这是我的测试数据(MySQL)
test1
test2
test3
test10
test11
mytest
我想按文本对这些记录进行排序,然后按以下数字(如果存在)排序:
mytest
test1
test2
test3
test10
test11
当我使用Order By
时,我的数据被排序为文本,如下所示:
mytest
test1
test10
test11
test2
test3
有人能给我一个解决方案吗?
发布于 2015-04-21 18:10:32
在我的查询中,我将字母数字值与字符串值分开,然后对结果进行梳理,看一下:
select temp1.a col from
(select a from tabl WHERE a not REGEXP '[0-9]' order by length(a)) temp1
union all
select temp2.a from
(select a FROM tabl WHERE a REGEXP '[0-9]' order by length(a),a) temp2 ;
https://stackoverflow.com/questions/29768112
复制相似问题