如何通过使用Cursor中的特定列来计算记录数?

时间:2017-08-24 06:28:11

标签: android sqlite android-sqlite

我写了一个应用程序,其中包含一个SQLite数据库,并有一个名为&#34的表;通知"。
我想通过使用名为" packageName"的列来获取记录计数。从前面提到的表格。

我该怎么做?

代码:

 public long getRecordsCount() {
    SQLiteDatabase db = this.getReadableDatabase();
    long count = DatabaseUtils.queryNumEntries(db, CNotificationDataBaseTableDeclarations.NotificationsTable.TABLE_NAME);
    db.close();
    return count;
}

2 个答案:

答案 0 :(得分:0)

试试这个:

public long getRecordsCount() {
    SQLiteDatabase db = getReadableDatabase();
    try {
        String selectQuery =
                "SELECT COUNT(*)" +
                " FROM " + CNotificationDataBaseTableDeclarations.NotificationsTable.TABLE_NAME +
                " WHERE " + YOUR_SPECIFIC_COLUMN + " = 'COLUMN_VALUE'";
        return DatabaseUtils.longForQuery(db, selectQuery, null);
    } finally {
        db.close();
    }
}

答案 1 :(得分:0)

有一个queryNumEntries()版本允许您使用与普通查询相同的selection过滤:

    long count = DatabaseUtils.queryNumEntries(db,
                    CNotificationDataBaseTableDeclarations.NotificationsTable.TABLE_NAME,
                    YOUR_SPECIFIC_COLUMN + " = 42", null);

或字符串值:

                    ...
                    YOUR_SPECIFIC_COLUMN + " = ?", new String[]{ "your value" });