一尘不染

MySQL中的自然排序

mysql

有没有一种优雅的方法可以在MySQL数据库中进行高性能的自然排序?

例如,如果我有此数据集:

  • 最终幻想
  • 最终幻想4
  • 最终幻想10
  • 最终幻想12
  • 最终幻想12:爱情之链
  • 最终幻想冒险
  • 最终幻想起源
  • 最终幻想战术

除了将游戏名称拆分成各个组成部分外,其他任何 优雅的 解决方案

  • 标题 :《最终幻想》
  • 编号 :“ 12”
  • 副标题 :“ Promathia的链条”

确保它们以正确的顺序出现?(10个在4之后,而不是2之前)。

这样做是一件令人痛苦的事情,因为不时有另一款游戏破坏了解析游戏标题的机制(例如“战锤40,000”,“詹姆斯·邦德007”)


阅读 381

收藏
2020-05-17

共1个答案

一尘不染

我认为这就是为什么很多东西都按发布日期排序的原因。

一种解决方案是在表中为“ SortKey”创建另一列。这可能是标题的经过净化处理的版本,与您为便于排序或创建计数器而创建的模式相符。

2020-05-17