2013-03-20 85 views
0

我有很多來自GPS設備的記錄,我需要在地圖上顯示路線。當記錄之間的時間不超過5分鐘時,記錄將合併一條路線。如何在每條記錄之間的間隔不超過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需要形成的路線。

我想寫一個查詢,但我卡住了。我設法在數據庫後執行操作,但這是你不應該想要的(你必須檢索所有記錄等)。

有人有解決方案嗎?

回答

1

你可以通過簡單地比較其繼任者的每個條目

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 
; 

如果存在一個條目(A,B)和另一個項目(B,C)獲得單獨的鏈段,你知道你有一個路徑從(A-> B-> C)。

下一步就是收集所有這些路徑段。這可以通過遞歸查詢來完成,但我不熟悉mySQL。

+0

@GeorgeBoot:感謝您更正如何計算mySQL中兩個日期時間值之間的差異。 – alzaimar 2013-03-20 09:08:28

相關問題