我有一个脚本,它同时在 MySQL 表中插入许多条目。这意味着我有 >100 个具有相同时间戳的条目,另一个 >100 个具有该时间戳加上 1 秒的条目......
该脚本不时启动,因此每次启动该脚本时,我都会在几分钟内丢失条目。我想检索某个字段 MYFIELD 的最大值和最小值,看看时间戳的最后 5 分钟,这样我就可以从上次脚本执行中获取最小值和最大值。
这可能吗?如何?
首先找到最后一个时间戳:
SELECT MAX(timestamp)
FROM your_table;
并用它来获得 MIN 和 MAX:
SELECT MIN(myfield), MAX(myfield)
FROM your_table
INNER JOIN (SELECT MAX(timestamp) as max FROM your_table) t ON TRUE
WHERE timestamp >= (max - interval 5 MINUTE);
一种方法是添加一列(比如 insert_timestamp)来跟踪行插入的时间戳。所以查询将很简单
select min(myfield), max(myfield)
from mytable
where insert_timestamp between now() and (now() - interval 5 MINUTE)