首页 > 解决方案 > Room IN 查询是否使用 DISTINCT 和 ORDER BY 主键发回数据

问题描述

我使用带有这样列表的 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> 的列表我想要同样的返回,但是现在我要回来了使用我似乎无法很好地处理我的实时数据的原始查询,有什么想法吗?似乎它应该是超级直截了当的,因为 sqlite 开箱即用,是房间在返回数据时应用 DISTINCT 和 ORDER BY 主键吗?如果有人知道改变这种情况的方法吗?

编辑 这显然比原始问题提出了更多问题,它可能是一个 sqlite 问题而不是 android 房间问题,这意味着标签在这里更相关

标签: androidsqliteandroid-roomandroid-livedataandroid-jetpack

解决方案


推荐阅读