在mysql中复制/更新数据

时间:2012-09-25 10:03:56

标签: mysql

我希望每5分钟获得一次数据总和。 我有15个节目。 因为,假设在前5分钟内只查询了一些微粒,并在接下来的5分钟内查询其他一些微粒。 现在,在第二个5分钟内,我需要在5分钟内未被查询的微粒数据 即,在前5分钟内查询了moteid的1,2,3,4,9,12,14,并在第二分钟查询了moteid的1,5,6,7,9,13,14。 在第二个5分钟内,我需要为那些未被查询的数据更新数据。是否可以从前5分钟获得数据

moteid2 | 28 | 2012-09-25 17:45:43 | | 
moteid4 | 65 | 2012-09-25 17:45:49 | | 
moteid3 | 66 | 2012-09-25 17:45:51 | | 
moteid6 | 25 | 2012-09-25 17:45:56 | | 
moteid5 | 29 | 2012-09-25 17:45:58 | | 
moteid7 | 30 | 2012-09-25 17:46:05 | | 
moteid4 | 95 | 2012-09-25 17:50:29 | | 
moteid6 | 56 | 2012-09-25 17:50:35 | | 
moteid5 | 58 | 2012-09-25 17:50:36 | | 
moteid4 | 126 | 2012-09-25 17:55:08 |

在最初的5分钟内,moteid2,moteid3被查询,但在接下来的5分钟内,他们不会被查询。即使他们没有被查询,我也希望现在保留相同的先前查询值。

1 个答案:

答案 0 :(得分:1)

我假设表名是motes。在这种情况下,以下查询显示整个表中存在但在最后5分钟内未查询的记录的所有唯一motesid

select distinct m.motesid
from motes m
where not exists (
    select *
    from motes m1
    where 
        m1.moteid = m.motesid and
        m1.date > SUBTIME(CURTIME(), '0:05:00')
)