【问题标题】:Function to generate string for natural sort为自然排序生成字符串的函数
【发布时间】:2019-07-08 10:42:00
【问题描述】:

我在两个数据库(MySQL 和 MariaDB)中有一些记录,我必须使用自然排序对其进行排序。在 mysql 中,我使用函数和触发器:https://stackoverflow.com/a/12257917/1408681 但不确定,如何在 MongoDB 中生成这样的字符串。我也使用PHP,所以在更新记录之前生成这样的字符串,然后用于排序是没有问题的。

但是……怎么办?我正在寻找从字符串生成特殊字符串的函数,然后可以将其用于自然排序。

【问题讨论】:

  • 请举例说明您的字符串和您的“特殊”字符串
  • 例如,我的字符串:2018-D4-0023 特殊字符串:0000002018-D0000000004-0000000023 它来自链接的mysql函数并且工作正常。我需要类似 php 的东西,或者只是更好地解释一下,如何写这个。
  • 所以,把它拆成它的组件,然后以所需的格式重新组装它们……在- 爆炸给你三个“基本部分”,D4 你仍然需要拆分(或通过字符串索引访问这两个部分,如果这实际上只有两个字符,并且它们在 ASCII 范围内) - 然后使用 str_pad 或 sprintf 来获得所需的结果。
  • @misorude 是的,但这仅适用于这个小例子。如果我有“ABC123”或“ZYS.**#XKS-23”或“TEST:12:C”怎么办?它必须始终生成正确的字符串。
  • 那么它们之间的共同“模式”究竟应该是什么?

标签: php mysql mongodb sorting natural-sort


【解决方案1】:

在我的情况下,解决方案是使用 https://docs.mongodb.com/manual/reference/collation/ - 在 MongoDB 中进行排序的本机选项。这比创建下一个字段要好得多。

【讨论】:

    猜你喜欢
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多