用于按数字部分对字母数字字符串进行排序的 SQL

2024-03-05

我有一个 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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于按数字部分对字母数字字符串进行排序的 SQL 的相关文章

随机推荐