[英]concat two string columns in android room database
我需要在查询中连接两列并进行比较。 这是我的代码。 它不起作用。 我想搜索全名。 怎么做:
@Query("SELECT * FROM shohada_table WHERE name LIKE :searchKey OR family LIKE :searchKey OR (SELECT name || family FROM shohada_table AS fullname ) like :orgSearch ORDER BY family ASC, name ASC")
fun getInfo( orgSearch: String): DataSource.Factory<Int, ShohadaItem>
在这个查询中,我以%SearchWord%"
的形式发送searchKey
, orgSearch
将是原始词: SearchWord
。例如,如果我想搜索Linus Torvalds
,则searchKey
将是%Linus Torvalds%
, orgSearch
将是Linus Torvalds
.
而不是 (SELECT name || family FROM sohada_table AS fullname ) 你只需要使用 name || 家庭
@Query("SELECT * FROM shohada_table WHERE name LIKE :searchKey OR family LIKE :searchKey OR (name || family) :orgSearch ORDER BY family ASC, name ASC")
fun getInfo( orgSearch: String): DataSource.Factory<Int, ShohadaItem>
您好,感谢您的回复。 我在以下查询中得到了我想要的结果。
@Query("SELECT * FROM shohada_table WHERE name LIKE :searchKey OR family LIKE :searchKey OR (SELECT name || ' ' || family as fullname ) LIKE :searchKey ORDER BY position ASC, family ASC, name ASC")
fun getSearchedItems(searchKey: String): DataSource.Factory<Int, ShohadaItem>
如果我的搜索词是mahdi noori
,我的 searcKey 将是%mahdi%noori%
。 我为此使用以下代码:
shohadaDao.getSearchedItems("%${searchKey.replace(" ", "%")}%")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.