我有一个 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(使用前将#替换为@)