排序項我有一個具有列SQL查詢來刪除通過時間
_id =主鍵自動遞增
標題=字符串
時間戳=長
表我的表中有35個條目。我的表在任何給定時間只能包含25個條目。所以這意味着必須從我的表中刪除10個額外的條目。
還有35個條目應該先按時間戳排序,最後10個條目應該刪除,以便我只有25個最近的條目。
有些人可以幫我一個刪除查詢,首先按時間戳排序條目,只保留25個條目,刪除剩餘的條目。
排序項我有一個具有列SQL查詢來刪除通過時間
_id =主鍵自動遞增
標題=字符串
時間戳=長
表我的表中有35個條目。我的表在任何給定時間只能包含25個條目。所以這意味着必須從我的表中刪除10個額外的條目。
還有35個條目應該先按時間戳排序,最後10個條目應該刪除,以便我只有25個最近的條目。
有些人可以幫我一個刪除查詢,首先按時間戳排序條目,只保留25個條目,刪除剩餘的條目。
DELETE FROM MYTABLE WHERE _id NOT IN
(SELECT _id from MYTABLE ORDER BY timestamp DESC LIMIT 25)
保持最新的25個條目。
這聽起來像你需要SQL中的FIFO隊列。只存儲最近25個(或任何其他數量)項目的表格。
如果是這樣,那麼這裏是一個解決方案:
http://www.xaprb.com/blog/2007/01/11/how-to-implement-a-queue-in-sql/
替代radashk方法: 您可以刪除一個(最早的)記錄每次插入新記錄時,可以在DB做插入表格觸發器:
DELETE FROM MYTABLE WHERE timestamp = MIN(timestamp);
此聲明可以包裝在記錄盤點檢查或其他內容中,以確保您保持最低記錄數。
作品像魅力... thnx – 2012-08-07 11:43:37