首先按字母顺序排序,然后按数字排序

Leo*_*ong 12 mysql sql sorting sql-order-by

我在mysql排序中寻找一些调整,我通常从表中选择记录,然后按名称(varchar)ASC订购记录,但数字始终是第一位的

这里有一些我的问题的例子(注意.mysql首先按0-9排序记录)

SELECT name FROM list ORDER BY name ASC
record returned:
1 star
2 star
9 slice
Ape
Age
Beg
Bell
Fish
Zoo
Run Code Online (Sandbox Code Playgroud)

我想要的是首先是字母顺序,然后是数字

期望的输出

Ape
Age
Beg
Bell
Fish
Zoo
1 star
2 star
9 slice
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 25

使用以下ORDER BY子句:

ORDER BY IF(name RLIKE '^[a-z]', 1, 2), name
Run Code Online (Sandbox Code Playgroud)


Sal*_*lil 6

参考这个

SELECT name FROM list ORDER BY name * 1 ASC
Run Code Online (Sandbox Code Playgroud)

编辑

SELECT name FROM list ORDER BY name * 1, name ASC
Run Code Online (Sandbox Code Playgroud)