当前位置: 首页 > 面试题库 >

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

夏侯兴怀
2023-03-14
问题内容

我将对各种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);


 类似资料:
  • 问题内容: 这是我的表结构- 我想清楚地选择所有的数据(以及日期)。由于日期在两个相同的条目之间会有所不同,因此我想选择日期最近的行。我希望得到这样的结果- 我不想要这个- 我正在使用此查询- 但是它只能挑一排。我该如何纠正? 问题答案: 试试这个查询 如果只想使用此查询: SQL字段 如果要查找所有用户的最新日期,请使用此查询 在此查询中,还将包含的数据

  • 问题内容: 我继承了具有以下结构的表: 是一个标识字段和主键,并且and字段上有非唯一索引。 什么是最有效的方式来获得每个项目名称的最新记录,即在上述行的表 1 , 4 和 6 ,因为他们是最先进的日期项物品应归还 一 , 乙 和 Ç 分别。 问题答案: SQL Server 2005(开始):

  • 本文向大家介绍如果日期为VARCHAR格式,如何从MySQL中选择特定记录?,包括了如果日期为VARCHAR格式,如何从MySQL中选择特定记录?的使用技巧和注意事项,需要的朋友参考一下 为此,请使用STR_TO_DATE()。让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 如果日期为VARCHAR格式,则下面是从MySQL中

  • 我想要的 我想查询显示每个发件人的最新最后消息

  • 问题内容: 我有一张桌子,上面有几条记录。有一个ID字段。我想选择具有最新ID(即最高ID)的记录。 有任何想法吗? 问题答案:

  • 主要的问题是,如何更新表单中选择的几个字段。我想让用户选择他们想要更新的字段。例如,我有form类: 之后,我将在类中设置字段,例如,如果用户只想更改他们的名称和姓氏,我将通过方法从现有的中获取其余的字段,然后更改一些字段并将更改的对象保存到数据库中。