【发布时间】:2017-12-17 14:02:22
【问题描述】:
我有一个名为“test”的表,其中有一列名为“custom_id”,它可以是字母和整数的混合。我希望 MySQL 查询首先根据整数对其进行排序,然后根据字符串中的字母对其进行排序。即:
Input:
1b
1a
Apple5
Apple1
Bapple2
Bapple5
2a
3
Output (in ASC):
1a
1b
Apple1
2a
Bapple2
3
Apple5
Bapple5
上面的排序与自然排序有点不同,因为它不根据字符串的长度进行排序。我有以下在 MariaDB 中有效的查询,但我正在寻找 MySQL 解决方案(请不要执行任何程序):
SELECT custom_id FROM test
ORDER BY CAST(REGEXP_SUBSTR(custom_id,'[0-9]+') AS UNSIGNED) ASC, custom_id ASC
【问题讨论】: