繁体   English   中英

包含数字的SQL顺序字符串

[英]SQL-Order Strings containing numbers

我的表中有以下值:

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查询中解决吗?

您可以在订购时使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM