房间数据库以逗号分隔的字符串搜索

时间:2018-03-22 04:26:15

标签: android sqlite android-room

在我的sqlite数据库中,我有如下列

**Cities**
------------------------
new york, chicago, boston
London, bristorl , leeds, boston

现在,如果我使用像“boston”这样的关键字进行搜索,它将返回第一行和第二行,如果我使用芝加哥搜索,它将仅返回第一行。

这就是我试过的

@Query("SELECT * FROM TableName" + " WHERE + :city IN (Cities) ")
List<UserInfo> getAllByCities(String city);

但它不起作用,它什么也没有返回。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我使用下表进行演示。

CSVColumn

a,b
a,b,c
a
b
c
a,c

包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn (CSVColumn,',','a','contains')

输出下表找到 a 值:

a,b
a,b,c
a
a,c

包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn (CSVColumn,',','b,a','contains')

输出下表找到 b,a 值:

a,b
a,b,c
a
b
a,c

包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn  (CSVColumn,',','c','contains')

输出下表找到 c 值:

a,c
a,b,c

我认为这会对你有帮助。