可以說100是一個開始,101是一個停止事件。這些應該交替,我想找出他們什麼時候沒有。每次開始都應該有事先停止事件。鑑於此表:MySQL查找行
ID EVENT_ID
10 100 // a start event
11 101 // a stop event
12 99 // some irrelevant event
13 100 // .. and so on:
14 101
15 100
16 99 // some irrelevant event
17 100 // <-- duplicate event: bad
18 100 // <-- duplicate event: bad again.
19 101
我遺漏了DATETIME列。
如何找到#15和#17,考慮到開始不應該連續發生兩次?
結果應該是形式:
EVENT_ID FROM_ID FROM_DATETIME UPTO_ID UPTO_DATETIME
100 15 2014-01-01 14:00 17 2014-01-01 16:00
我想它可能會像這樣工作:
- 子查詢只找到DATETIME有序事件100,101。
- 按EVENT_ID使用count()
..但我懷疑這會崩潰的結果,作爲組會忽略排序,
查找重複..和我不知道如何讓兩個(或更多! )各自的DATETIME值。
是否有可能在MySQL中找到它?我可以在PHP中處理這個問題,但我寧願避免這種情況。
有關選擇已事項標識= 100,下一個行不具有價值101的所有行麼?可以辦到。 – Goikiu
@Goikiu這是問題。語法是什麼? –
爲了做正確的sintax我們需要一些解釋。 1)身份證是唯一的?你可以有身份證複印件嗎?是根據? – Goikiu