这是我的测试数据(MySQL)
test1
test2
test3
test10
test11
mytest
我想按文字订购这些记录,而不是按照以下号码(如果有的话)订购:
mytest
test1
test2
test3
test10
test11
当我使用Order By
时,我的数据按文本排序,如下所示:
mytest
test1
test10
test11
test2
test3
有人能为我提供解决方案吗?
答案 0 :(得分:0)
在我的查询中,我将字母数字值与字符串值分开,然后梳理结果,看看:
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 ;