Получить количество строк со значением true из базы данных в android kotlin - PullRequest
1 голос
/ 05 августа 2020

У меня есть база данных с именами и истинными или ложными значениями. У меня, например, 10 строк, и четыре из них имеют значение «истина».

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 Ответ

0 голосов
/ 05 августа 2020

Сначала исправьте свой запрос следующим образом:

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