繁体   English   中英

MySQL从参数表中获取最新信息

[英]Mysql getting latest information from parameters table

我有一个包含以下列的数据库:id,object_id,名称,值,时间戳

这个数据库中有很多对象参数。 对于每个object_id,我都有记录:

id    object_id    name   value       timestamp
1     20           event  data         2016-08-10 17:00:00
2     20           event  hist         2016-08-10 18:00:00
3     20           event  data         2016-08-10 19:00:00
4     20           event  hist         2016-08-10 16:00:00
5     20           source  device      2016-08-10 17:00:00
6     20           source  device      2016-08-10 18:00:00
7     20           source  webservice  2016-08-10 19:00:00
8     20           source  webservice  2016-08-10 16:00:00

所以我会有例如在2016-08-10 19:00:08的实际数据:

3     20           event  data         2016-08-10 19:00:00
7     20           source  webservice  2016-08-10 19:00:00

我直到现在才使用此查询

SELECT * 
FROM table st1 
INNER JOIN (SELECT max(id) as id 
            FROM table 
            WHERE object_id = 20 AND timestamp <= '2016-08-10 19:00:08' 
            GROUP BY `name`) st2 
ON st2.id = st1.id  
WHERE object_id = 20

这非常有效,因为max(id)始终具有最新信息,但是现在不再可用了。

我应该使用哪个查询来解决此问题?

您可以按时间戳订购:

ORDER BY `timestamp` DESC

并添加一个条件,其中时间戳必须比一个小时前更新。 UNIX_TIMESTAMP()会将其转换为可以以这种方式操作的整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM