2010-09-07 45 views
1

我有這樣的條目的MySQL表:如何過濾mysql重複的id行並檢索最新的時間戳?

id name  value date 
1 results1 1000000 2010-06-02 01:31:12 
2 results2 600000 2010-09-03 05:42:54 
1 results1 1200000 2010-09-06 02:14:36 

如何,我可以選擇全部篩選具有相同的ID多行,只選擇了一個與最晚日期?

「日期」列數據類型是時間戳,並且它具有CURRENT_TIMESTAMP作爲默認值。

+0

這聽起來像慢慢變化的尺寸。你可能想要查看這個問題的答案:http://stackoverflow.com/questions/125877/versioning-database-persisted-objects-how-would-you – 2010-09-07 21:00:34

回答

1
select m.* 
from (
    select id, max(date) as MaxDate 
    from MyTable 
    group by id 
) mm 
inner join MyTable m on mm.id = m.id and mm.MaxDate = m.Date 
+0

+1 - 25秒的差異,sheesh ... – 2010-09-07 20:58:58

+0

I無法使查詢工作,除了MyTable之外,是否需要編輯其他任何內容? – jarkam 2010-09-08 01:26:39

+0

我得到它的工作增加了幾個「AS」,但它只檢索一行(最高日期),即使其他行具有不同的名稱相同的ID。我如何檢索所有? – jarkam 2010-09-08 02:07:30

相關問題