gpt4 book ai didi

php - MySQL 查询为我正在制作的论坛创建 "bump-system"

转载 作者:行者123 更新时间:2023-11-29 05:00:57 25 4
gpt4 key购买 nike

我在构建执行以下操作的 MySQL 查询时遇到问题:

从线程表中选择所有 threadID,按最新帖子(最大时间戳)的时间戳(降序)排序,threadID 等于每个线程的 threadID。所以基本上我想遍历线程并让 MySQL 检查数据库以查找线程 0。然后它检查所有线程 ID 为 0 的帖子,并根据线程 0 中帖子的最大时间戳对线程 0 进行排序。然后它对线程 1、线程 2 等重复此操作并相应地对它们进行排序。

这可能吗?就是为了营造论坛的“顶峰系统”效果,最近活跃的帖子会不断地顶到榜首,直到帖子消失,然后降到最底。我曾经使用不同的实现,我在线程表中存储了一个 lastActivity 时间戳,并在新帖子提交到线程时更新它,但这个查询会使事情变得更有效率。

非常感谢!这里有两个相关的表:threads 和 posts。帖子有一个 threadID 字段,用于存储它所属的线程的 ID,它还有一个时间戳字段。 Threads 有一个字段 threadID 对应于帖子的 threadID。

最佳答案

以下内容过去在 MySql 上对我有用。如果您想在查询中包含有关每个线程的更多信息,您必须将列添加到 SELECTGROUP BY

select thread.threadID, max(comments.modifiedOn) as threadUpdated 
from thread inner join comments on thread.threadID = comments.threadID
group by 1
order by 2 desc;

此查询服务于您的主要请求,它是对我最近的评论进行排序的线程列表。它不会按原样返回没有评论的线程,您需要将连接更改为外部连接才能执行此操作。

关于php - MySQL 查询为我正在制作的论坛创建 "bump-system",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726472/

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