Query Sqlite Database by specific/custom ordering?

后端 未结 3 2021
花落未央
花落未央 2020-12-19 20:49

Let\'s say I got a table, something like this:

ID | TITLE
1 | AAA
2 | BBB
3 | CCC
4 | DDD
5 | EEE
...

相关标签:
3条回答
  • 2020-12-19 21:08

    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;
    
    0 讨论(0)
  • 2020-12-19 21:17

    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");

    0 讨论(0)
  • 2020-12-19 21:25

    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
    
    0 讨论(0)
提交回复
热议问题