MySQL 根据来自相同 table 的日期时间范围更新字段
MySQL updating field based on datetime range from the same table
我有一个 table 喜欢
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 秒范围内,我想对总和列求和。
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
试试这个:
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;
我有一个 table 喜欢
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 秒范围内,我想对总和列求和。
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
试试这个:
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;