我有动态的Id 31165,31160,31321,31322,31199,31136
列表。
当我运行查询
select id,name from master_movievod where id in(31165,31160,31321,31322,31199,31136);
我得到以下结果
31136|Independence Day
31160|Planet of the Apes
31165|Mrs. Doubtfire
31199|Moulin Rouge
31321|Adult Movie 2
31322|Adult Movie 3
该列表按升序排列。
我想要列表以输入顺序相同
31165|Mrs. Doubtfire
31160|Planet of the Apes
31321|Adult Movie 2
31322|Adult Movie 3
31199|Moulin Rouge
31136|Independece Day
最佳答案
如果没有order by
子句,则无法保证数据库将结果返回给您的顺序。不幸的是,SQLite没有类似MySQL的field
的自定义排序功能,但是您可以使用case
表达式进行吉米绑定(bind):
SELECT id, name
FROM master_movievod
WHERE id IN (31165, 31160, 31321, 31322, 31199, 31136)
ORDER BY CASE ID WHEN 31165 THEN 0
WHEN 31160 THEN 1
WHEN 31321 THEN 2
WHEN 31322 THEN 3
WHEN 31199 THEN 4
WHEN 31136 THEN 5
END ASC