数据排序后的字母,然后再数字
问题描述:
32 BB
12 A
84 H
13 H
34 C
16 C
115 H
18 C
我想订购他们是这样的:
12 A
32 BB
16 C
18 C
34 C
13 H
84 H
115 H
这里是我试过到目前为止:
SELECT *
FROM people
ORDER BY IF(data_name RLIKE '^[a-z]', 2, 3), data_name
SQL查询按类似于未排序的方式对它们进行排序。我怎样才能做到这一点?
答
如果数据是在两列(这是我如何解释的问题和样本数据),然后简单地做:
order by col2, col1
如果数据是在一列,然后我会从rlike
猜测您正在使用MySQL,你可以这样做:
order by substring_index(col, ' ', -1), substring_index(col, ' ', 1) + 0
尝试ORDER BY IF(DATA_NAME RLIKE '^ [az]' 可以,4,2),DATA_NAME – Grantly
什么数据库您使用的?数据是在一列还是两列? –
同样的结果,重要。我想我正在使用MariaDB,Gordon。无论是那个还是InnoDB。我在发布问题之前试图查看它,但没有找到它:/ – Erik