首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android选择类似的查询

Android选择类似的查询
EN

Stack Overflow用户
提问于 2017-05-25 15:53:41
回答 4查看 69.1K关注 0票数 152

我正在尝试进行一个查询,以搜索名称包含文本的所有对象:

代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE %:arg0%")
fun loadHamsters(search: String?): Flowable<List<Hamster>>

消息:

代码语言:javascript
复制
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

另外,我还在努力:

代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE '%:arg0%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>

消息:

代码语言:javascript
复制
Error:Unused parameter: arg0

怎么解决这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-25 16:25:49

您应该将%字符括在输入查询中,而不是在查询本身中。

例如,试试这个:

代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE :arg0")
fun loadHamsters(search: String?): Flowable<List<Hamster>>

那么您的String search值应该如下所示:

代码语言:javascript
复制
search = "%fido%";
loadHamsters(search);

此外,绑定参数名应该与变量名相匹配,因此,与arg0不同,它应该如下所示:

代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE :search")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
票数 198
EN

Stack Overflow用户

发布于 2017-06-09 02:55:13

您只需使用SQLite字符串连接即可。

代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search || '%'")
fun loadHamsters(search: String?): Flowable<List<Hamster>>
票数 445
EN

Stack Overflow用户

发布于 2021-08-30 05:34:33

关键字在带房间数据库的dao中的应用实例。

  1. Search_Query开始
代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE :search_query || '%'")
    fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
  1. Search_Query结束
代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query ")
   fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
  1. 得到所有有Search_Query
代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name LIKE '%' || :search_query || '%'")
   fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
  1. 除了具有Search_Query的数据以外,不喜欢使用
代码语言:javascript
复制
@Query("SELECT * FROM hamster WHERE name NOT LIKE '%' || :search_query || '%'")
   fun loadHamsters(search_query: String?): Flowable<List<Hamster>>
票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44184769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档