Query Sqlite Database by specific/custom ordering?

∥☆過路亽.° 提交于 2019-11-29 12:24:39

EDIT:

Tested, works:

SELECT * FROM books WHERE _id IN(4, 1, 5) 
ORDER BY
CASE _id
WHEN '4' THEN 1
WHEN '1' THEN 2
WHEN '5' THEN 3
ELSE 4
END, _id;

I haven't tested user3249477 answer above, but assuming the SQL is correct (it looks okay), then SQLiteDatabase has a rawquery method that returns a cursor.

database.rawquery("SELECT * FROM books WHERE _id IN(4, 1, 5) ORDER BY CASE _id WHEN '4' THEN 1 WHEN '1' THEN 2 WHEN '5' THEN 3");

A second way of doing it (the first one being with CASE WHEN ... THEN END as already stated in other answers) is:

ORDER BY ID=4 DESC,
         ID=1 DESC,
         ID=5 DESC
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!