【问题标题】:How to get most recent row in a table?如何获取表中的最新行?
【发布时间】:2011-08-03 05:02:52
【问题描述】:

我希望在我的首页上显示我最近的博客文章或消息。

但是,我当前的查询按行号顺序显示消息,因此显示最早或第一条博客消息,最新消息位于页面底部。

我想显示最近的 5 个博客。

在我的“博客”表中,我有列:

-blog_id

-标题

-作者

-日期(y-m-d)

-内容

这是我的查询

SELECT * FROM blog LIMIT 5

我尝试使用 SELECT MAX,但它只返回一行。

如何获取最后 5 行等。

我想按 row_id (blog_id) 排序,因为有些帖子可能有相同的日期。

谢谢

【问题讨论】:

    标签: php mysql select


    【解决方案1】:

    http://dev.mysql.com/doc/refman/5.5/en/sorting-rows.html

    SELECT * FROM blog ORDER BY date DESC,blog_id DESC LIMIT 5
    

    【讨论】:

      【解决方案2】:

      SELECT * FROM blog ORDER BY date DESC LIMIT 5

      【讨论】:

      • 无法可靠工作,因为日期列不包含时间。
      【解决方案3】:

      假设您的博客 ID 是串行的,这应该可以:

      SELECT * FROM blog ORDER BY blog_id DESC LIMIT 5
      

      请注意,您不能按日期排序,因为它不包括时间 - 如果在同一天创建了两个博客,您不知道哪个是在该日期之后创建的。

      【讨论】:

      • 处理事务时,最大的 ID 可能不是最新的条目。
      • 是的,但这与没有创建时间列的情况一样准确。
      • 您可能是对的,根据当前数据,这大约是 OP 可以做的最好的事情(而且大多数情况下它是正确的)。
      • @Wrikken 我认为这种行为只存在于旧版本的 MySQL 中
      【解决方案4】:
      SELECT * FROM `blog` ORDER BY `blog_id` DESC LIMIT 5
      

      这将选择最新的 5 篇博文,从最新的一篇开始。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 2016-04-07
        • 2020-07-30
        • 2023-04-09
        • 1970-01-01
        相关资源
        最近更新 更多