2017-05-11 47 views
-1

嗨我想問你如何使用MySQL查詢獲取不基於日期時間的特定範圍的行。我的樣本數據如下顯示:在mysql中獲取特定範圍(不是日期時間)的行

datetime   action  
2017-05-01 01:02:32 Login  
2017-05-01 02:02:32 Task 1  
2017-05-01 01:32:32 Task 2  
2017-05-01 02:02:32 Logout  
2017-05-01 03:30:32 Login  
2017-05-02 01:02:32 Task 3  
2017-05-02 02:02:32 Task 4  
2017-05-02 03:02:32 Logout  

上,使得記錄,我想只有具有包含登錄值,直到退出值作用範圍得到最新的記錄。所以我的結果應該是這樣的:

datetime   action  
2017-05-01 03:30:32 Login  
2017-05-02 01:02:32 Task 3  
2017-05-02 02:02:32 Task 4  
2017-05-02 03:02:32 Logout  

任何想法如何?請指教。由於

+1

您需要添加的時間或某事對行進行排序。現在您無法知道Task1是在登錄之前還是之後。 –

+0

啊是的,假設日期是日期時間。 – Cris

+1

那麼包括時間,現在你有兩個登錄在同一天。所以你不能分裂這些。沒有辦法產生你想要的輸出 –

回答

1

喜歡的東西:

SELECT datetime, action 
FROM table 
WHERE datetime >= (
    SELECT datetime 
    FROM table 
    WHERE action="Login" 
    ORDER BY datetime DESC 
    LIMIT 1 
) 
ORDER BY datetime ASC 
相關問題