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

Android 以逗号分隔字符串搜索房间数据库,android,sqlite,android-room,Android,Sqlite,Android Room,在我的sqlite数据库中,我有如下列 **Cities** ------------------------ new york, chicago, boston London, bristorl , leeds, boston 现在如果我用“boston”这样的关键字搜索,它将返回第一行和第二行,如果我用chicago搜索,它将只返回第一行 这就是我尝试过的 @Query("SELECT * FROM TableName" + " WHERE + :city IN (Cities) ") L

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

**Cities**
------------------------
new york, chicago, boston
London, bristorl , leeds, boston
现在如果我用“boston”这样的关键字搜索,它将返回第一行和第二行,如果我用chicago搜索,它将只返回第一行

这就是我尝试过的

@Query("SELECT * FROM TableName" + " WHERE + :city IN (Cities) ")
List<UserInfo> getAllByCities(String city);
@Query(“从表名“+”中选择*,其中+:城市位于(城市)”)
列出getAllByCities(字符串城市);
但它不起作用,它什么也没有回报


我如何才能做到这一点?

为了演示的目的,我使用了下表

CSV柱

a,b
a,b,c
a
b
c
a,c
包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn (CSVColumn,',','a','contains')
select * from mytable where '1' = dbo.fun_QueryCSVColumn  (CSVColumn,',','c','contains')
输出下表,找到a值:

a,b
a,b,c
a
a,c
a,b
a,b,c
a
b
a,c
a,c
a,b,c
包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn (CSVColumn,',','a','contains')
select * from mytable where '1' = dbo.fun_QueryCSVColumn  (CSVColumn,',','c','contains')
从mytable中选择*,其中“1”=dbo.fun\u querycscvolumn(CSVColumn,,,,'b,a','contains')

输出下表,找到b,a值:

a,b
a,b,c
a
a,c
a,b
a,b,c
a
b
a,c
a,c
a,b,c
包含

select * from mytable where '1' = dbo.fun_QueryCSVColumn (CSVColumn,',','a','contains')
select * from mytable where '1' = dbo.fun_QueryCSVColumn  (CSVColumn,',','c','contains')
输出下表,找到c值:

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

我认为它对您有帮助。

您可以尝试使用
“WHERE Cities IN(:city)”
。你写错了查询。你的
表名是什么
,你替换了真正的表吗?是的,我替换了。我尝试过,但没有返回任何内容:(您可以使用
%:city%
重试。谢谢,但我的数据库不是csv文件