当前位置: 首页 > 面试题库 >

MySQL中的自然排序

阚原
2023-03-14
问题内容

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

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

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

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

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

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

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


问题答案:

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

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



 类似资料:
  • 问题内容: 我有一些文件需要按名称排序,但是不幸的是,我无法使用常规排序,因为我也想对字符串中的数字进行排序,因此我进行了一些研究,发现所寻找的东西叫做。 我尝试了此处给出的解决方案,并且效果很好。 但是,对于诸如和这样的字符串,该字符串会导致特定的自然键算法失败,因为它仅与第一个整数匹配,在这种情况下,该整数将是和,因此它放弃了排序。因此,我认为可能会帮助匹配字符串中的所有数字并将它们分组在一起

  • 问题内容: 我有一个熊猫DataFrame,它的索引要自然排序。Natsort似乎不起作用。在构建DataFrame之前对索引进行排序似乎无济于事,因为我对DataFrame所做的操作似乎使过程中的排序变得混乱。关于如何自然使用索引的任何想法? 问题答案: 如果要对df进行排序,只需对索引或数据进行排序,然后直接将其分配给df的索引,而不是尝试将df作为arg传递,因为这会产生一个空列表: 请注意

  • 问题内容: 请查看下面的代码: 有人可以解释一下为什么输出是 代替 ? 因为在API中它表示优先级队列的元素是根据其自然顺序进行排序的。 问题答案: PriorityQueue基于优先级堆。尽管未对元素进行排序,但此数据结构允许非常快地检索最小元素。将元素添加到PriorityQueue的速度比向基于树的TreeSet快。由于未对元素进行排序,因此如API所述,迭代器“不会以任何特定顺序返回元素”

  • 问题内容: 我已经为此工作了几个月。我只是无法获得(真实的字母数字)结果。令我震惊的是我无法获得自1992年以来的成就。 我正在寻找SQL,VBS或简单的excel或access中的任何解决方案。这是我的数据: 我要查找的顺序是真实的字母数字顺序,如下所示: 库存为7800条记录,因此我在处理能力方面也遇到了一些问题。 任何帮助,将不胜感激。 杰夫 问题答案: 在本机Excel中,您可以添加多个排

  • 问题内容: 我有一个目录列表,我想为其检索文件名并将它们放在字符串向量中,以便它们以“自然”方式排序。例如应该是。最简单的方法是什么? 在阐述“自然”,我们假设从号码的部分组成的字符串 (N) 和文本 (T) 这样,那么对于和 会,其中 暗示了正确的长期左边项优先。在这种情况下,如果数字在字符串中的相同位置(即),则数字优先于文本字段。 已经有一个库函数可以对字母数字字符串或目录条目进行这种排序吗

  • 问题内容: 我碰巧遇到了许多语句,例如当需要自然排序并同时对数组或集合和比较器进行排序以进行总排序时,使用了compare的语句。 您可能听到的版本可能相同,也可能相同,但含义相同,但最终还是两者(比较器和类似接口)之间的区别因素之一。 但是,我找不到任何地方的两种订购类型之间的区别。如果有人可以用一个很好的例子来解释它,我将不胜感激:) 问题答案: 总排序意味着可以将所有值与所有其他值进行比较。