从 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())
我有一个数据库,其中包含名称和真值或假值。 例如,我有 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())