gpt4 book ai didi

mysql - 按复杂值对 mysql 表进行排序

转载 作者:行者123 更新时间:2023-11-29 14:20:17 28 4
gpt4 key购买 nike

我的表由记录组成,其中每个记录都有自己的历史记录,如下所示:

65465406540-245|65465408540-654

历史条目计数没有限制(列类型是文本,所以......)。历史条目始终按从最旧到最新的顺序排序。这意味着最新条目位于右侧。

历史条目由管道字符“|”分隔。一个历史记录条目由时间戳、作为分隔符的破折号“-”和代表进行更改的用户 ID 的 1-4 位数字组成。

现在我的问题是我想按最新(或最旧)的历史条目对表中的记录进行排序。我该怎么做?

我正在考虑 MySQL 函数,因为结果必须到达已经排序的 PHP 脚本,但我不知道从哪里开始,所以非常感谢每一个帮助。

最佳答案

对于最旧的,您可以使用 RedFilters(现已编辑)答案

ORDER BY LEFT(column_name,11)

按最新顺序订购更有趣。

ORDER BY REVERSE(SUBSTR(REVERSE(column_name),1,LOCATE("|",REVERSE(column_name))-1))

让我们来分解一下。我们反转列并找到第一个 | 的索引。

456-04580456456|542-04560456456  

然后我们得到到目前为止的子字符串,这给了我们:

456-04580456456

这是反转的最后一项,因此现在我们可以简单地REVERSE字符串并按该字符串进行排序,以按最后一项进行排序:

65465408540-654

然而,这非常可怕。如果可能的话,我会考虑用 PHP 来做这件事。

关于mysql - 按复杂值对 mysql 表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11849481/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com