[英]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.