Search code examples
mysqlsqlsql-order-by

Sort the rows according to the order specified in WHERE IN clause


I have something like:

SELECT *
FROM table
WHERE id IN (118, 17, 113, 23, 72);

It returns the rows ordered by ID, ascending. Is there a way to get back the rows in the order specified in the IN clause?


Solution

  • You should use "ORDER BY FIELD". So, for instance:

    SELECT * FROM table WHERE id IN (118,17,113,23,72) 
    ORDER BY FIELD(id,118,17,113,23,72)