[英]How to sort query result by argument of list order?
下面的查詢返回:ids
列表中具有 id 的所有項目。 但是表和輸入列表有不同的順序。 有沒有辦法添加偽代碼ORDER BY:ids
之類的東西?
@Query("SELECT * FROM item_table WHERE type = :type AND itemId IN (:ids)")
fun getPagingSource(type: EntityType, ids: List<String>): PagingSource<Int, ItemEntity>
一種方法是不將 id 作為 List 傳遞給運算符IN
檢查,而是將它們作為逗號分隔的字符串傳遞,例如'36,3,14'
並在WHERE
子句中使用運算符LIKE
來過濾行。
然后,在ORDER BY
子句中使用字符串 function INSTR()
對行進行排序:
SELECT *
FROM item_table
WHERE type = :type
AND ',' || :ids || ',' LIKE '%,' || itemId || ',%'
ORDER BY INSTR(',' || :ids || ',', ',' || itemId || ',');
查看簡化的演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.