【问题标题】:Get total number of not null records in Android SQLite database获取 Android SQLite 数据库中非空记录的总数
【发布时间】:2011-05-22 16:51:04
【问题描述】:

我想从我的 SQLite 数据库中获取 NOT NULL 记录的数量。由于我使用的是自动增量,所以最后插入的行不会给我表中的真实记录数,因为即使我删除任何中间记录,它也会插入到比最后插入的记录高的位置。

insert 语句返回最后插入的行数,但我想要这个值。

【问题讨论】:

    标签: android sqlite record notnull


    【解决方案1】:

    在桌子上进行计数应该有效。只需使用 NOT NULL 的 where 检查查询 id 列,然后在返回的游标上调用 getCount()

    只是为了确定:您永远不应该,真的永远不应该在生产数据库中操作自动增量。如果您删除一条记录,那么“差距”应该留在那里。它对性能或其他任何东西没有影响。如果在空白处插入一条新记录,会造成很多麻烦...

    【讨论】:

    • 执行 COUNT() 查询可能更有效,因为 Cursor 实际上会填充返回的每一行。
    • 只有在遍历结果时才会填充光标,对吗?无论如何,我没有想到,即使只选择 id 也会产生巨大的数量。所以你的权利。 +1
    • 是的,不是在 Android 上。查询返回一个完全填充的光标。
    【解决方案2】:

    所以你只想找到行数? (据我所知,没有“空记录”之类的东西。)

    你能不能只做

    select count(1) from YourTableName
    

    select count(*) from YourTableName
    

    ? (有些数据库使用一种或其他形式会更快……我不知道 sqlite。)

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多