在我的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
进行此查询?