一尘不染

SQL WHERE IN(')按列表顺序排序吗?

sql

假设我使用where子句查询数据库

WHERE _id IN (5,6,424,2)

有什么办法可以按_id在列表中列出的顺序对返回的游标进行排序?_id属性在Cursor中从头到尾分别为5、6、424、2?

碰巧这是通过ContentProvider在Android上进行的,但这可能无关紧要。


阅读 384

收藏
2021-03-10

共1个答案

一尘不染

使用子查询选择ID列表并加入它:

select t1.*
from t1
inner join
(
  select 1 as id, 1 as num
  union all select 5, 2
  union all select 3, 3
) ids on t1.id = ids.id
order by ids.num

UPD: 固定代码

2021-03-10