mysql - 如何对包含双冒号 (::) 的文本进行排序

标签 mysql sql

要按名称订购,我使用'order by name'

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

如何按双冒号后面出现的文本进行排序?

所以:

aaaa::bbbb
aaaa::aaaa
aaaa::1234
aaaa::a1234

将订购:

aaaa::1234
aaaa::aaaa
aaaa::a1234
aaaa::bbbb

最佳答案

按子字符串排序并使用 locate找到它的开始位置:

order by substring(name, locate('::', name) + 3, 30)

由于不会使用索引,因此会降低性能。

关于mysql - 如何对包含双冒号 (::) 的文本进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049357/

相关文章:

mysql - 能否建议大型关系数据分析器的解决方案?

python - Django 迁移产生奇怪的错误

java - 如何在 Java 代码中从 Postgresql 调用存储过程

mysql - SQL 数据库中的持久变量?

sql - 如何根据其他列中存在的值选择行

php - Laravel:查询生成器连接多表

mysql - Laravel DB 查询构建器,使用 RAW 表达式进行 LEFT JOIN

mysql触发器用相同的列更新另一个表行

php - 无法跳转到 MySQL 结果索引上的第 0 行..?

mysql - SQL查询连接两个表并过滤第一个表中的行而第二个表中没有相应的条目