包含数字的SQL-Order字符串

时间:2016-02-23 10:30:02

标签: mysql sql

我的表中有以下值:

a 3
a 5
a 7
aa 5
a 10
b 5

使用ORDER BY命令,我得到以下内容:

a 10
a 3
a 5
a 7
aa 5
b 5

我想要以下结果:

a 3
a 5
a 7
aa 5
a 10
b 5

我在SQL查询中如何解决它的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以在订购时使用substring_index()分割数据:

SELECT
    col1
FROM
    table1 t
ORDER BY
    SUBSTRING_INDEX(col1, ' ', 1),
    CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(col1, ' ', 2),' ',- 1) AS UNSIGNED)

然而,aa将成为a之后,因为您所需的排序逻辑与两个列中的数据值相矛盾,其中一个必须是领先的。此查询返回:

a 3
a 5
a 7
a 10
aa 5
b 5