SQLite iOS DB删除旧记录

SQLite iOS DB删除旧记录,ios,sql,sqlite,Ios,Sql,Sqlite,我正在尝试为我的SQLite DB构建一个DELETE语句,该语句将确保删除超过X个记录的任何内容。我不太熟悉SQL,所以我不知道如何编写它,我还需要确保记录首先按日期字段排序,该字段存储为整数,以便确保保留最新的X行并删除较旧的记录 非常感谢您提供的任何帮助。可以在SQLite中使用子查询和使用limit来完成 在这里,您的子查询将返回所有需要根据限制X5删除的ID。我希望它能帮助你 DELETE FROM TABLENAME WHERE ID IN ( SELECT ID FRO

我正在尝试为我的SQLite DB构建一个DELETE语句,该语句将确保删除超过X个记录的任何内容。我不太熟悉SQL,所以我不知道如何编写它,我还需要确保记录首先按日期字段排序,该字段存储为整数,以便确保保留最新的X行并删除较旧的记录


非常感谢您提供的任何帮助。

可以在SQLite中使用子查询和使用limit来完成

在这里,您的子查询将返回所有需要根据限制X5删除的ID。我希望它能帮助你

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

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

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

您不需要对记录进行排序,也不需要进行子选择。只需从datefield