2012-08-04 114 views
0

排序項我有一個具有列SQL查詢來刪除通過時間

_id =主鍵自動遞增

標題=字符串

時間戳=長

表我的表中有35個條目。我的表在任何給定時間只能包含25個條目。所以這意味着必須從我的表中刪除10個額外的條目。

還有35個條目應該先按時間戳排序,最後10個條目應該刪除,以便我只有25個最近的條目。

有些人可以幫我一個刪除查詢,首先按時間戳排序條目,只保留25個條目,刪除剩餘的條目。

回答

3
DELETE FROM MYTABLE WHERE _id NOT IN 
    (SELECT _id from MYTABLE ORDER BY timestamp DESC LIMIT 25) 

保持最新的25個條目。

+0

作品像魅力... thnx – 2012-08-07 11:43:37

0

替代radashk方法: 您可以刪除一個(最早的)記錄每次插入新記錄時,可以在DB做插入表格觸發器:
DELETE FROM MYTABLE WHERE timestamp = MIN(timestamp);
此聲明可以包裝在記錄盤點檢查或其他內容中,以確保您保持最低記錄數。