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先生,我已经编辑了这个问题。