首先在字母后排序数据,然后是数字

时间:2017-10-29 00:37:08

标签: sql sql-order-by

示例:

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查询对它们进行排序,类似于它们的未排序方式。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

如果数据分为两列(这就是我解释问题和样本数据的方式),那么只需执行以下操作:

order by col2, col1

如果数据在一列中,那么我将从你使用MySQL的rlike猜测,你可以这样做:

order by substring_index(col, ' ', -1), substring_index(col, ' ', 1) + 0