Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何查找一个列表是否包含sqlite中另一个列表的任何元素_Java_Android_Sqlite_Android Room - Fatal编程技术网

Java 如何查找一个列表是否包含sqlite中另一个列表的任何元素

Java 如何查找一个列表是否包含sqlite中另一个列表的任何元素,java,android,sqlite,android-room,Java,Android,Sqlite,Android Room,我有一个sqlite表,其中有一个列selected\u dates。此列包含CustomDates对象的列表。我想查询此列是否包含相同类型的其他列表项(customDates)。但是我找不到任何办法。我试过: @Query(“从schedule_表中选择*,其中(type_daily为1)或(:monthOfYear为1)”+ “或(在(:customDates)中选择的日期)”+ “按scheduleID描述订购”) LiveData getSchedulesOfThisWeek(字符串Mo

我有一个
sqlite
表,其中有一个列
selected\u dates
。此列包含
CustomDates
对象的列表。我想查询此列是否包含相同类型的其他列表项(
customDates
)。但是我找不到任何办法。我试过:

@Query(“从schedule_表中选择*,其中(type_daily为1)或(:monthOfYear为1)”+
“或(在(:customDates)中选择的日期)”+
“按scheduleID描述订购”)
LiveData getSchedulesOfThisWeek(字符串MonthHofYear,列出自定义日期);
这是我的示例数据(
List
对象以
json
格式存储):

7月8日,月8日,8月8日,8月8日,8月8日,8月8日,8月8日,8月8月8日,月8月8日,月8月8日,月8月8日,月7月8日,月8日,月8月8日,月8日,月8月8日,月8日,月8日,8月8日,月8日,月8日,月8日,月8日,月8日,月8日,月8日,月8日,7日,月8日,月8日,月8日,月7日,月8日,月8日,月7日,月8日,月7日,月8日,月8日,月7日,月8日,月7日,月7日,月7日,月8日,月8日,月8日,月8日,月7日,月7日,月7日,月8日,月7日,月7日,月7日,":13,“月”:8,{“月日”:14,“月”:8,{“月日”:15,“月”:8,{“月日”:16,“月”:8,{“月日”:17,“月”:8,{“月日”:18,“月”:8,{“月日”:19,“月”:8,{“月日”:20,“月”:8,{“月日”:21,“月”:8,{“月日”:22,“月”:8,{“月”:23,“月”:24,{,{“月日”:26,“月日”:8},{“月日”:27,“月日”:8},{“月日”:28,“月日”:8},{“月日”:29,“月日”:8}]
总之,如何在sqlite中找到两个列表是否相交?

基本上,Room数据库以主要数据类型存储数据。因此,您选择的日期是
文本格式的。您可以执行
LIKE
操作来查找匹配的列

房间还提供注释
@RawQuery
。你可以用这个。对于您的问题,这可能是一个解决方案:

Dao
界面中:

@RawQuery(observedEntities=Schedule.class)
LiveData getSchedule(支持SQLiteQuery查询);
并使用
getSchedule()

String query=“从附表中选择*+
“(类型_daily为1)或(“+monthOfYear+”为1)或”+
条件+“按scheduleID描述的订单”;
返回mDao.getSchedule(新的SimpleSQLiteQuery(查询));
其中
条件
是要查找的日期的
字符串
。例如:

String condition=“所选日期如“{\”dayOfMonth\”:1、“month\”:8}%或所选日期如“{\”dayOfMonth\”:5、“month\”:8}%;

您可以创建一个方法,该方法将基于
列表生成此字符串

基本上房间数据库以主要数据类型存储数据。因此,您选择的日期是
文本格式的。您可以执行
LIKE
操作来查找匹配的列

文件室还提供注释
@RawQuery
。您可以使用它。对于您的问题,这可能是一个解决方案:

Dao
界面中:

@RawQuery(observedEntities=Schedule.class)
LiveData getSchedule(支持SQLiteQuery查询);
并使用
getSchedule()

String query=“从附表中选择*+
“(类型_daily为1)或(“+monthOfYear+”为1)或”+
条件+“按scheduleID描述的订单”;
返回mDao.getSchedule(新的SimpleSQLiteQuery(查询));
其中
条件
是要查找的日期的
字符串
。例如:

String condition=“所选日期如“{\”dayOfMonth\”:1、“month\”:8}%或所选日期如“{\”dayOfMonth\”:5、“month\”:8}%;

您可以创建一个方法,该方法将根据比较数字时应使用的
=
符号的
列表生成此字符串<代码>为
运算符用于检查
NULL
。您还可以展示一些示例数据吗?带有数据的表格结构将非常有用。@AleksG先生,我已经编辑了这个问题。请注意,在比较数字时,您应该使用
=
符号<代码>为
运算符用于检查
NULL
。您还可以展示一些示例数据吗?带数据的表格结构将非常有用。@AleksG先生,我已经编辑了这个问题。