gpt4 book ai didi

php - 在 MySQL 表中按日期获取最后一个和下一个数据库记录?

转载 作者:行者123 更新时间:2023-11-29 01:00:41 26 4
gpt4 key购买 nike

我有一个与博客相关的特定问题,我现在正在使用 OOP (PHP) 开发该博客。所有博文都存储在一个 MySQL 表中。

在应用程序中,您可以通过 GET 参数提供帖子的 ID 来阅读特定的帖子。所以像 http://example.com/?id=2。在博文下,我想显示“上一个”和“下一个”之类的导航链接,以查看相对于用户正在阅读的帖子按日期排序的下一个和上一个博文。所以我需要的是 mysql 表中下一条和上一条记录的日期 ID。

如何解决?有什么方法可以在 SQL 中解决这个问题,还是我必须使用 php 获取所有记录,然后进行一些检查以确定这是最后一个还是下一个?

请注意:我不想按 ID 获取上一篇和下一篇文章,而是按日期获取它们的 ID。

如有任何帮助,我们将不胜感激。谢谢。

最佳答案

获取早于特定日期的最新记录:

SELECT id
FROM yourtable
WHERE date < '2010-08-15 14:07:12'
ORDER BY date DESC
LIMIT 1

或比特定日期更新的最旧记录:

SELECT id
FROM yourtable
WHERE date > '2010-08-15 14:07:12'
ORDER BY date
LIMIT 1

确保日期列已编入索引。

如果 date 是唯一的,这会很好地工作,但是如果您有两条记录具有完全相同的日期并重复使用 next 这可能会跳过其中一条记录。要解决此问题,您可以使用一个决胜局列,使 (date, tie-breaker) 始终是唯一的。例如,您可以使用主键作为决胜局。

查看我对这个问题的回答,了解如何做到这一点:

关于php - 在 MySQL 表中按日期获取最后一个和下一个数据库记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487241/

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