我正在尝试进行一个查询,以搜索名称包含文本的所有对象:
@Query("SELECT * FROM hamster WHERE name LIKE %:arg0%")
fun loadHamsters(search: String?): Flowable<List<Hamster>>消息:
Error:no viable alternative at input 'SELECT * FROM hamster WHERE name LIKE %'
Error:There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (near "%": syntax error)
Error:Unused parameter: arg0另外,我还在努力:
@Query("SELECT * FROM hamster WHERE name LIKE '%:arg0%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>消息:
Error:Unused parameter: arg0怎么解决这个问题?
发布于 2017-05-25 16:25:49
您应该将%字符括在输入查询中,而不是在查询本身中。
例如,试试这个:
@Query("SELECT * FROM hamster WHERE name LIKE :arg0")
fun loadHamsters(search: String?): Flowable<List<Hamster>>那么您的String search值应该如下所示:
search = "%fido%";
loadHamsters(search);此外,绑定参数名应该与变量名相匹配,因此,与arg0不同,它应该如下所示:
@Query("SELECT * FROM hamster WHERE name LIKE :search")
fun loadHamsters(search: String?): Flowable<List<Hamster>>发布于 2017-06-09 02:55:13
您只需使用SQLite字符串连接即可。
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search || '%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>发布于 2021-08-30 05:34:33
类关键字在带房间数据库的dao中的应用实例。
@Query("SELECT * FROM hamster WHERE name LIKE :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query ")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>@Query("SELECT * FROM hamster WHERE name NOT LIKE '%' || :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>https://stackoverflow.com/questions/44184769
复制相似问题