В моей базе данных Sqlite у меня есть представление, которое создается следующим образом:
CREATE VIEW my_view AS
SELECT
...
CASE WHEN some_field IS NOT NULL THEN 1 ELSE 0 END as in_favorite
FROM my_table
...
Теперь в коде мне нужно отфильтровать все результаты в зависимости от условия: я хочу либо все результаты, либо только те, которые имеют 1 вэто поле.Вот мой код.
db.rawQuery("SELECT * FROM verb_info WHERE in_favorite != ?",
arrayOf(if(myBooleanFlag) "0" else "-1")).use { c ->
// ....
}
Проблема здесь в том, что когда myBooleanFlag=true
этот запрос кажется переведенным в SELECT * FROM verb_info WHERE in_favorite != '0'
, и он возвращает мне все строки.
Можно ли задать тип параметра для rawQuery
как int
, чтобы сделать этот запрос похожим на SELECT * FROM verb_info WHERE in_favorite != 0
?