![](/img/trans.png)
[英]order by strings and numbers starting with numbers first and then 'strings of numbers'
[英]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.