提问者:小点点

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


我有一个数据库,有名字和真值或假值。 例如,我有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

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


共1个答案

匿名用户

首先更正您的查询,如下所示:

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())