>我有一列字符串,如下所示:
ABC-10
ABC-20
ABC-40
...
ABC-130
ABC-410
我希望通过数字对它们进行排序。
我知道两种方法:
SELECT * from table
ORDER BY SUBSTRING_INDEX(model, '-', -1) + 0;
和
SELECT * from table
ORDER BY CAST(RIGHT(model, LENGTH(model) - 4) as unsigned);
两者似乎给出了相同的结果。 一个比另一个更受欢迎吗?
当数字字符串较短时,最好使用第一种方法。演员阵容将比订购 4 位字符串花费更长的时间
当数字字符串很长(必须很长(时,首选第一种方法,因为强制转换不会像对具有如此多的 caharcter 的字符串进行排序那样长。与字符串相比,数字非常容易排序