Search code examples
sqlitecursorsql-order-by

Query Sqlite Database by specific/custom ordering?


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

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

I want to perform a query, using IN opeator, while preserving the order of the IN Arguments

database.query("some_table", null, ID + " IN("+ idsStr+")", null, null, null, null);

For example, if the query is "select from some_table where id in (4,1,5) ...(order by???)", I want that the returned cursor to be sorted as 4,1,5

Is it possible? how?


Solution

  • 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;