Mysql 如何在每条记录之间的间隔不超过5分钟的曲目中选择记录?

Mysql 如何在每条记录之间的间隔不超过5分钟的曲目中选择记录?,mysql,sql,database,Mysql,Sql,Database,我有很多GPS设备的记录,我需要在地图上显示路线。当记录之间的时间不超过5分钟时,记录组合路线 假设我的数据库看起来像: id date ------- --------------------- 1 2013-01-10 11:00:00.0 2 2013-01-10 11:01:15.0 3 2013-01-10 11:02:15.0 4 2013-01-10 11:03:15.0 5 2013-01-10

我有很多GPS设备的记录,我需要在地图上显示路线。当记录之间的时间不超过5分钟时,记录组合路线

假设我的数据库看起来像:

id       date
-------  ---------------------
1        2013-01-10 11:00:00.0
2        2013-01-10 11:01:15.0
3        2013-01-10 11:02:15.0
4        2013-01-10 11:03:15.0
5        2013-01-10 11:04:45.0
6        2013-01-10 11:15:00.0
7        2013-01-10 12:00:00.0
8        2013-01-10 12:00:50.0
在这种情况下,记录1-5和7-8需要形成一条路线

我正试图为此编写一个查询,但我被卡住了。我设法在数据库之后执行该操作,但这是您不希望看到的(您必须检索所有记录等)


有人对此有解决方案吗?

您只需将每个条目与其后续条目进行比较,即可获得各个分段

SELECT 
    f.ID AS from_ID,
    t.ID AS to_ID
FROM
    GPSTable AS f 
JOIN GPSTable AS t
    ON f.ID = t.ID-1 
WHERE
    TIMESTAMPDIFF(SECOND, f.Date, t.Date) < 300
;
选择
f、 从(u ID)开始的ID,,
t、 身份证
从…起
gpf稳定
加入gpt
在f.ID=t.ID-1上
哪里
时间差(秒,f日期,t日期)<300
;
如果存在一个条目(A,B)和另一个条目(B,C),您知道您有一个来自(A->B->C)的路径


下一步是收集所有这些路径段。这可以通过递归查询完成,但我不熟悉mySQL。

@GeorgeBoot:感谢您更正了如何计算mySQL中两个日期时间值之间的差异。