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

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

【问题讨论】:

标签: android android-sqlite


【解决方案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://stackoverflow.com/a/7700422/1143172

    我的意思是:

    DELETE FROM [tbl_names] LIMIT 35
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-11
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-24
        • 1970-01-01
        相关资源
        最近更新 更多