gpt4 book ai didi

php - MySQL PHP : how to efficiently fetch previous X dates that include entries

转载 作者:行者123 更新时间:2023-11-30 23:31:28 25 4
gpt4 key购买 nike

想象一个基本的网站,用户可以在其中随机发布一些内容。该系统使用 mysql-php 并将每个帖子存储在一个表中,称为 tablePost,其中一列存储日期(或时间)。请注意,用户可以在一天内发布多个帖子。我想要实现的是能够获取用户发布的最后 4 天(或更多)的日期。还要获取帖子信息(postid、posttext 等)。示例输出是:
- 2012-04-25(3 个帖子,postinfo...)
- 2012-04-12(2 个帖子,postinfo...)
- 2011-09-12(33 个帖子,postinfo...)
- 2011-03-04(10 个帖子,postinfo...)

我可以想象两种解决方案:

1) 只使用 tablePost 表,通过 php 遍历条目并获取所需数据

2) 创建另一个表,调用tableActiveDays。当用户发布时,可能会使用 INSERT IGNORE 插入一个条目(userId,dateDay)或检查它之前是否没有被插入。因此,每个 (userId, dateDay) 都是唯一的。这样,如果我想获取最近 4 个活跃日,我可以使用一个简单的 select ... order by ... limit by 4 查询。

我的问题是:
- 还有其他方法可以完成这项任务吗?
- 实现这一目标的最有效方法是什么?

最佳答案

创建 INTEGER 字段并将其命名为“dt_timestamp”。当用户发布消息时,保存在 time() 函数的“dt_timestamp”结果中。

更新:
如果您已注册用户,则添加 INTEGER 类型的字段,将其命名为 last_activity。当用户发布内容时,使用 time() 更新此字段。然后使用这个查询:

SELECT pt.* FROM post_table pt JOIN users_table ut ON ut.id = pt.user_id WHERE pt.dt_timestamp >= ut.last_activity - 86400 * 4 AND ut.id = % 复制代码needed_user_id%;

users_table 有字段 id - 用户的 id。 post_table 具有字段 user_id - 来自 users_table 的字段值。

使用 DATETIME 比使用整数时间戳要慢得多。

关于php - MySQL PHP : how to efficiently fetch previous X dates that include entries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10396655/

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