【发布时间】: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