繁体   English   中英

连接 android 房间数据库中的两个字符串列

[英]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%"的形式发送searchKeyorgSearch将是原始词: 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM