首页 > 数据库 > mysql教程 > 如何在MySQL中为每个方法和ID组合选择最新记录?

如何在MySQL中为每个方法和ID组合选择最新记录?

Mary-Kate Olsen
发布: 2024-12-18 18:40:19
原创
221 人浏览过

How to Select the Latest Records for Each Method and ID Combination in MySQL?

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

在 MySQL 表中存储时间敏感数据时,通常需要检索特定字段组合的最新记录。以下示例演示了如何在处理具有时间戳、方法和 ID 等字段的 RPC 响应表时实现此目的。

问题

考虑一个名为rpc_responses 具有以下结构:

CREATE TABLE rpc_responses (
  timestamp DATE,
  method VARCHAR,
  id VARCHAR,
  response MEDIUMTEXT,
  PRIMARY KEY (timestamp, method, id)
);
登录后复制

给出以下内容data:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getFoo 12 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

期望结果

获取方法和 id 的所有现有组合的最新响应列表:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

回答

要完成此任务,利用以下查询:

SELECT * 
FROM (
    SELECT *,
    IF(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method 
    FROM rpc_responses 
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;
登录后复制

此查询无需连接即可有效检索所需结果。它还维护所需的行结构,为方法和 id 的每个唯一组合提供不同的记录。

以上是如何在MySQL中为每个方法和ID组合选择最新记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板