从 SQLite 中删除旧行

Posted

技术标签:

【中文标题】从 SQLite 中删除旧行【英文标题】:Remove old row from SQLite 【发布时间】:2014-04-03 07:35:16 【问题描述】:

我们在 android 上使用数据库。我们在其中收集了大量数据,以免混淆用户的记忆,我们想做清洁。在数据库中,我们要保留 35 条最新记录。怎么做?

【问题讨论】:

重复***.com/questions/13028725/… 【参考方案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 个除外(假设您的表中有一个递增的主键。)

希望对你有帮助。

【讨论】:

【参考方案2】:

我认为你必须将 'LIMIT 35' 连接到你的 where 子句。喜欢这个答案:https://***.com/a/7700422/1143172。

我的意思是:

DELETE FROM [tbl_names] LIMIT 35

【讨论】:

【参考方案3】:

您必须考虑如何对表进行排序以获得最新的 35 条记录。也许是 id 或 date 字段。 您应该查看此帖子以获取更多信息 Delete all but top n from database table in SQL

【讨论】:

以上是关于从 SQLite 中删除旧行的主要内容,如果未能解决你的问题,请参考以下文章

不和谐 Java JDA |从 SQLite 删除数据/从 SQLite 获取数据 [关闭]

限制一个 sqlite 表的最大行数

如何从GridView项目中删除SQLite数据?

如何使用 PHP(和 HTML)从 SQLite 中选择、插入、更新和删除数据

如何从 recyclerview 和 sqlite 中删除项目? [复制]

Android:无法从 ListView 和 SQLite 中删除记录