从SQLite中删除旧行

时间:2014-04-03 07:35:16

标签: android android-sqlite

我们在Android上使用数据库。我们收集了大量的数据,以免弄乱用户的记忆,我们想做清洁。在数据库中,我们希望保留35条最新记录。怎么做?

3 个答案:

答案 0 :(得分:1)

如果没有提供更多信息,我可以为您提供原始SQL,因为我不知道您是如何实现SQLite数据库的。

DELETE FROM my_table WHERE my_id NOT IN(SELECT my_id FROM my_table ORDER BY my_id DESC LIMIT 35)这样你就会删除所有的寄存器,但最近的35个(假设你的表中有一个递增的主键。)

希望它有所帮助。

答案 1 :(得分:0)

您必须考虑以何种方式对表格进行排序以获取最新的35条记录。也许是它的id或date字段。 你应该查看这篇文章了解更多 Delete all but top n from database table in SQL

答案 2 :(得分:0)

我认为你必须在你的where子句中加入'LIMIT 35'。喜欢这个答案:https://stackoverflow.com/a/7700422/1143172

我的意思是:

DELETE FROM [tbl_names] LIMIT 35