首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对包含双冒号(::)的文本排序

问如何对包含双冒号(::)的文本排序
EN

Stack Overflow用户
提问于 2012-06-15 18:57:17
回答 5查看 216关注 0票数 2

为了按名称排序,我使用了'order by name‘

但是名称包含双冒号:'::'

如何按双冒号后面的文本排序?

所以:

代码语言:javascript
复制
aaaa::bbbb
aaaa::aaaa
aaaa::1234
aaaa::a1234

将按以下顺序排序:

代码语言:javascript
复制
aaaa::1234
aaaa::aaaa
aaaa::a1234
aaaa::bbbb
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-15 19:11:58

按子字符串排序,然后使用locate查找起始位置:

代码语言:javascript
复制
order by substring(name, locate('::', name) + 3, 30)

这会降低性能,因为不会使用索引。

票数 2
EN

Stack Overflow用户

发布于 2012-06-15 19:02:02

您必须在MySQL中创建一个新字段,然后将文本的第二部分插入其中。Sort by使用各种索引和算法(例如分而治之)。

因此,它不能对特定字符串的特定部分进行排序,如果您确实设法“伪造”了一种方式,那么由于缺乏索引,性能将非常糟糕。

对不起,我意识到这可能不是你想要的答案,但我担心最好的方法是稍微长一点的方法,但如果你给它添加一个索引,至少你可以以极快的速度完成:)

票数 0
EN

Stack Overflow用户

发布于 2012-06-15 19:02:58

您必须将文本拆分为两列,并按后一列排序。您可以在应用程序代码中拆分和联接列,也可以使用视图和存储过程使其在数据库客户端上看起来像一列。

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

https://stackoverflow.com/questions/11049357

复制
相关文章

相似问题

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