SQLite:getCount()或DatabaseUtils?

时间:2016-01-09 17:48:52

标签: android sqlite database-design

我正在尝试测试sqlite数据库是否为空。我已经阅读了stackoverflow帖子,很多人建议使用rawQuery和getCount()方法。其他人建议使用DatabaseUtils.longForQuery和DatabaseUtils.queryNumEntries。

我正在寻找速度,因为数据库中的行数很大。我正在寻找快速测试,以查看行数是否为零。如果不是,那是因为数据库中有1行或更多行。是否有一种方法可以在识别出1行后中止计数而不是计算所有行?如果没有,有关getCount与DatabaseUtils的想法吗?

2 个答案:

答案 0 :(得分:3)

queryNumEntries为Google Doc,其中在API级别11中添加

long count=0;
Cursor cursor =  Database.DB.rawQuery("select count(*) from table;",null);
count=cursor.getLong(0);

答案 1 :(得分:1)

sql查询SELECT COUNT(*) FROM table_name;运行得非常快。

DatabaseUtils.queryNumEntries()使用此方法。我会那样做。

您可以运行自己的SQLiteDatabase.rawQuery()来执行上述查询。那应该也不错。