Room IN查询是否使用DISTINCT和ORDER BY主键发送回数据

时间:2019-05-12 17:29:18

标签: android sqlite android-room android-livedata android-jetpack

我使用带有这样的列表的IN查询查询我的房间数据库

@Query("SELECT * FROM card WHERE cardId IN (:cardIds)")
LiveData<List<Card>> getCardsByIds(List<Integer> cardIds);

但是它正在删除重复项并按照主键ID的顺序返回它们,这不是我想要的。我希望它像我给数据库的顺序一样返回它的列表,例如,给定一个<1,3,2,1,4,5,1,2>的列表,我希望返回相同的列表,但是现在我要返回<1,2,3,4,5>,我已经看过直接从游标中获取数据,这似乎很可笑,因为android坚持要求您不要这样做,并且使用原始查询,我似乎无法很好地处理我的实时数据,还有什么想法吗?似乎应该是非常简单的,因为sqlite可以做到这一点,是房间在返回数据时正在应用DISTINCT和ORDER BY主键,还是有人知道改变它的方法?

编辑 这显然比原始问题要问的多,而且可能是sqlite问题,而不是android room问题,这意味着标签在这里更相关

0 个答案:

没有答案