ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql-通过数字部分排序字母数字字符串的SQL

2019-10-10 03:19:44  阅读:15  来源: 互联网

标签:sorting mysql



我有一个MySQL表,其中的VARCHAR列包含如下值:

abc-1
abc-2
abc-10
...etc.

有什么方法可以在MySQL中按数字部分对其进行排序:

abc-1
abc-2 

代替

abc-1
abc-10
abc-2

澄清数据值

典型值为mir-1,mir-14,mir-193,最高值为mir-4987.为简化起见,我们假设所有内容都以“ mir-”开头(我可以手动处理一些例外情况).

解决方法:

假设您的列可以包含abc-1或其他类似这样的值,例如defg-12
并且您要先订购abc,然后再订购其他.

SELECT 
    *
FROM
    your_table
ORDER BY SUBSTRING_INDEX(t, '-', 1) , CAST(SUBSTRING_INDEX(t, '-', - 1) AS UNSIGNED);


标签:sorting,mysql

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有