MySQL更新字段基于同一个表中的日期时间范围

时间:2015-04-27 13:13:15

标签: mysql sql range

我有一张像

这样的表格
datetime             game   sum         Releated
01/03/2015 00:00:25  Game1  1342.75 
01/03/2015 00:01:52  Game2  1418.5  
01/03/2015 00:01:53  Game3  1289    
01/03/2015 00:04:41  Game4  1473.25 
01/03/2015 00:06:09  Game5  1581.25 

成为这样的事情。

 datetime            game   sum         Releated
01/03/2015 00:00:25  Game1  1342.75 
01/03/2015 00:01:52  Game2  1418.5      01/03/2015 00:01:52
01/03/2015 00:01:53  Game3  1289        01/03/2015 00:01:52
01/03/2015 00:04:41  Game4  1473.25 
01/03/2015 00:06:09  Game5  1581.25 

如果两行或多行在10秒内时差(例如:第2行和第3行),我想更新相关列以标记它。使用datetime或某个值。这意味着是同一行集。

基于相同的理论,如果它们在10秒范围之间,我想要求总和列。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT *,
  (SELECT min(t2.d) 
   FROM yourTable t2
   WHERE ABS(TIMESTAMPDIFF(SECOND,t2.d, t1.d)) <= 10
         AND t2.d <> t1.d
  ) As related
FROM yourTable t1;

答案 1 :(得分:0)

SELECT * FROM harronLati a inner join harronLati b
WHERE
ABS(TIMESTAMPDIFF(SECOND,a.datetime,b.datetime)) <= 10 
group by a.datetime,a.game,a.sum,a.Releated
相关问题