首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL中,使用字符串的数字部分对字符串进行数字排序的首选方法是什么?

在MySQL中,使用字符串的数字部分对字符串进行数字排序的首选方法是什么?
EN

Stack Overflow用户
提问于 2017-08-05 00:56:51
回答 1查看 41关注 0票数 0

我有一列字符串,如下所示:

代码语言:javascript
复制
ABC-10
ABC-20
ABC-40
...
ABC-130
ABC-410

我希望通过数字对它们进行排序。

我知道有两种方法:

代码语言:javascript
复制
SELECT * from table 
ORDER BY SUBSTRING_INDEX(model, '-', -1) + 0;

代码语言:javascript
复制
SELECT * from table 
ORDER BY CAST(RIGHT(model, LENGTH(model) - 4) as unsigned);

两者似乎给出了相同的结果。其中一个比另一个更受欢迎吗?

EN

回答 1

Stack Overflow用户

发布于 2017-08-05 05:28:51

当数字字符串较短时,最好使用第一种方法。转换所需的时间要比排序一个4位数的字符串长得多

当数字字符串很长(它必须非常长)时,第一种方法是首选的,因为强制转换不会像对具有如此多caharcter的字符串进行排序所花费的时间那么长。与字符串相比,数字很容易排序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45512026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档