2015-04-27 24 views
2

MySQL的更新场我有一个像基于日期时间范围从同一个表

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秒范围之间进行总结之列。

+0

如果这些范围后,对方说做了一系列20秒什么它应该是不断地来吗?请添加一些结果到你的问题;)。 –

+0

@ shA.t添加结果集。 –

+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; 
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