SQL: select * from table where id IN (3,6,9,1,2,5,8,7);
這樣的情況取出來(lái)后蝙眶,其實(shí),id還是按1,2,3,4,5,6,7,8,9,排序的泉孩,但如果我們真要按IN里面的順序排序怎么辦漫拭?SQL能不能完成避消?是否需要取回來(lái)后再foreach一下碳锈?
MySQL解決辦法
select * from table where id IN (3,6,9,1,2,5,8,7) order by field(id,3,6,9,1,2,5,8,7);
出來(lái)的順序就是指定的順序了顽冶。。售碳。强重。
SQLite解決辦法
select * from table where id IN (4,3,1,5,6)
ORDER BY
CASE ID
WHEN 4 THEN 0
WHEN 3 THEN 1
WHEN 1 THEN 2
WHEN 5 THEN 3
WHEN 6 THEN 4
END
不過(guò)尾神說(shuō)sqlite 這樣做的效率太低了 可以做個(gè)索引表