我有一系列的日期的事件,如下所示:MySQL的ORDER BY兩次(由相同的字段)
- 事件1,2014年1月1日
- 事件2,2014年1月2日
- Event 3,1/3/2014
說我想要按照時間順序排列最近的兩個事件。如果我跑:
SELECT * FROM 'table_name' ORDER BY 'Date' ASC LIMIT 2
我會得到以下結果:
- 事件1,2014年1月1日
- 事件2,2014年1月2日
但這是不正確的,因爲事件3是最近的事件。所以,我因此改變ASC到DESC:
SELECT * FROM 'table_name' ORDER BY 'Date' DESC LIMIT 2
我得到如下結果:
- 事件3,2014年1月3日
- 事件2,2014年1月2日
這是正確的結果集,但它們倒退了。我想最近的活動持續了......但我不能簡單地第二次使用ORDER BY 'Date'
。有沒有辦法來限制我的結果(通過LIMIT
和ORDER BY
,然後對剩餘的效果,請使用第二ORDER BY
?
任何幫助,非常感謝!
這是MySQL的,所以這些都不是日期;-) – Strawberry 2014-08-30 22:05:40
如此,儘管我覺得這不是日期時間表示法更具可讀性。我不認爲這個符號和這個概念一樣重要,這個概念是兩次排序的。 – Jake 2014-08-30 22:08:14
傑克,@Strawberry提出了一個很好的觀點。你不應該以這種格式存儲日期,因爲按字符串日期而不是日期時間字段排序意味着你將得到不正確的結果。如果你想知道如何以及爲什麼我可以給你看...但作爲一條經驗法則,最好將數據存儲爲它的存儲數據類型:) – 2014-08-30 22:31:09