2012-08-04 113 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);
此声明可以包装在记录盘点检查或其他内容中,以确保您保持最低记录数。