是否可以将 SQLite 的IN
条件与 Room 一起使用?
我正在尝试从我的数据库中选择一个项目列表,其中某个列(在本例中为TEXT
列)的值与一组过滤器值中的任何一个匹配。据我所知,这在 SQL 和 SQLite 中很容易完成,只需在您的语句中添加一个IN
条件(请参见此处)。但是,我似乎无法使其与 Room 一起使用。SELECT
我不断收到此错误:
Error:(70, 25) error: no viable alternative at input 'SELECT * FROM Table WHERE column IN :filterValues'
(调用 DAO@Query
注释方法的输入filterValues
)
我现在尝试了三种不同的方法:
- 将参数作为
List<String>
- 将参数作为
String[]
- 最后将参数简单地传递为 a
String
,但格式为(value_1, value_2, ..., value_n)
特别是最后一个应该很容易工作,因为它将(或至少应该)直接转换为,如果您只是直接访问数据库SELECT * FROM Table WHERE column IN (value_1, value_2, ..., value_n)
,这就是您手动写出的确切方式。SELECT