首页 >数据库 >mysql教程 >如何高效地从带日期的 MySQL 表中检索最新记录?

如何高效地从带日期的 MySQL 表中检索最新记录?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 09:43:14156浏览

How to Efficiently Retrieve the Most Recent Records from a Dated MySQL Table?

从带日期的 MySQL 表中检索最新记录

为某个方法和 id 的所有现有组合选择最新响应MySQL 表的结构:

Table: rpc_responses

timestamp   (date)
method      (varchar)
id          (varchar)
response    (mediumtext)

PRIMARY KEY(timestamp,method,id)

考虑以下内容步骤:

  1. 创建子查询以选择分组:

    SELECT *,
    if(@last_method=method,0,1) as new_method_group,
    @last_method:=method AS t1
    FROM rpc_responses
    ORDER BY method,timestamp DESC
    • @last_method 变量初始化为空字符串。
    • if() 语句创建一个 new_method_group 列,指示具有相同方法值的新行组。
  2. 筛选每组中的第一行:

    WHERE new_method_group=1

    此条件确保只有方法和时间戳的每个组合的最新行才是

  3. 选择所需的列:

    SELECT timestamp, method, id, response
    FROM t1

此查询将返回所需的结果集,其中包括所有现有方法和 ID 组合的最新响应。它很高效,因为它避免使用连接并利用 MySQL 变量来跟踪不同方法组之间的转换。

以上是如何高效地从带日期的 MySQL 表中检索最新记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn