如何从mysql表中选择最新的日期记录集

我将对各种rpc调用的响应存储在具有以下字段的mysql表中:

Table: rpc_responses

timestamp (date)

method (varchar)

id (varchar)

response (mediumtext)

PRIMARY KEY(timestamp,method,id)

method和的所有现有组合选择最新响应的最佳方法是什么id

  • 对于每个日期,对于给定的方法/ ID,只能有一个响应。

  • 并非所有呼叫组合在给定日期都必须存在。

  • 有数十种方法,数千个ID和至少365个不同的日期

样本数据:

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 "....."

所需结果:

2009-01-10 getThud 16 "....."

2009-01-10 getBar 12 "....."

2009-01-11 getFoo 12 "....."

2009-01-11 getBar 16 "....."

(我不认为这是同一个问题-它不会给我最新的信息response

回答:

自我回答,但是随着表的增长,我不确定这是否将是一个足够有效的解决方案:

SELECT timestamp,method,id,response FROM rpc_responses 

INNER JOIN

(SELECT max(timestamp),method,id FROM rpc_responses GROUP BY method,id) latest

USING (timestamp,method,id);

以上是 如何从mysql表中选择最新的日期记录集 的全部内容, 来源链接: utcz.com/qa/418379.html

回到顶部