从 android kotlin 中的数据库中获取值为 true 的行数

Get Count of rows with value true from a database in android kotlin

我有一个数据库,其中包含名称和真值或假值。 例如,我有 10 行,其中 4 行的值为“true”。

name | value  
-------------  
1    | false  
2    | true  
3    | false  
4    | true  
5    | false  
6    | false  
7    | true  
8    | false  
9    | false  
10   | true

我的尝试是:

val c = db!!.rawQuery("SELECT COUNT(*) FROM table GROUP BY value HAVING value = \"true\"", arrayOf())  
c.moveToNext()  
Log.e("OUTPUT", c.toString())

但是我得到的日志是:
E/OUTPUT: android.database.sqlite.SQLiteCursor@b0b20ea

所以我的问题是,如何获取计数值作为可用的整数值?

首先像这样更正您的查询:

val c = db!!.rawQuery("SELECT COUNT(*) FROM table WHERE value = 'true'"

因为您不想按值分组,而是计算包含值 'true'.
的表的行数 我假设 value 列包含字符串。
如果它包含布尔值,那么查询应该是:

val c = db!!.rawQuery("SELECT COUNT(*) FROM table WHERE value"

然后你可以通过c.getInt(0):

提取游标的第一列也是唯一一列的值
Log.e("OUTPUT", c.getInt(0).toString())