SQLite iOS DB删除旧记录

时间:2015-02-10 20:40:35

标签: ios sql sqlite

我正在尝试为我的SQLite数据库构建一个DELETE语句,以确保删除超过X条记录的任何内容。我不熟悉SQL,所以我不确定如何写这个,我还需要确保记录先按日期字段排序,然后存储为INTEGER,这样我就可以了确保我保留最新的X行并删除旧记录。

非常感谢任何有关如何做到这一点的帮助。

2 个答案:

答案 0 :(得分:0)

可以在SQLite中使用Sub Query并使用limit

来完成

此处,子查询将根据您的限制X(5)返回所有需要删除的ID。我希望它会对你有所帮助

 DELETE FROM TABLENAME WHERE ID IN ( 
    SELECT ID FROM TABLENAME 
    WHERE DATE < strftime('%s','now') limit 5
    );

答案 1 :(得分:0)

您可以使用类似于以下内容的查询。您的日期列也应该有一个索引。

DELETE FROM mytable WHERE date_column >= (
    SELECT date_column 
    FROM mytable 
    ORDER BY date_column 
    OFFSET num_rows_you_want_to_keep 
    LIMIT 1 
)