Den*_*kov 73 android kotlin android-room
我正在尝试进行查询以搜索名称中包含文本的所有对象:
@Query("SELECT * FROM hamster WHERE name LIKE %:arg0%")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
消息:
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
Run Code Online (Sandbox Code Playgroud)
我也在尝试:
@Query("SELECT * FROM hamster WHERE name LIKE '%:arg0%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
消息:
Error:Unused parameter: arg0
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
yig*_*git 224
您可以使用SQLite字符串连接进行连接.
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search || '%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
Cod*_*lan 111
您应该%在输入查询中包含字符 - 而不是在查询本身中.
试试这个:
@Query("SELECT * FROM hamster WHERE name LIKE :arg0")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
那你的String search价值应该是这样的:
search = "%fido%";
loadHamsters(search);
Run Code Online (Sandbox Code Playgroud)
此外,绑定参数名称应该与变量名称匹配,因此arg0它应该看起来像:
@Query("SELECT * FROM hamster WHERE name LIKE :search")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
小智 54
dao 与 Room 数据库中使用的LIKE关键字的一些示例。
@Query("SELECT * FROM hamster WHERE name LIKE :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query ")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
@Query("SELECT * FROM hamster WHERE name NOT LIKE '%' || :search_query || '%'")
fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24997 次 |
| 最近记录: |