如何从mysql表中选择最新的日期记录集
我将对各种rpc调用的响应存储在具有以下字段的mysql表中:
Table: rpc_responsestimestamp (date)
method (varchar)
id (varchar)
response (mediumtext)
PRIMARY KEY(timestamp,method,id)
为method
和的所有现有组合选择最新响应的最佳方法是什么id
?
对于每个日期,对于给定的方法/ ID,只能有一个响应。
并非所有呼叫组合在给定日期都必须存在。
有数十种方法,数千个ID和至少365个不同的日期
样本数据:
timestamp method id response2009-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