Say I have a query \"select * from clauses where id in (0,2,5,1,3)\" and I actually want the rows returned in the same order they are specified the where clause. The order of t
Select ..
From Clauses
Where Id In(0,2,5,1,3)
Order By Case Id
When 0 Then 1
When 2 Then 2
When 5 Then 3
When 1 Then 4
When 3 Then 5
...
End
On MySQL, you can use FIND_IN_SET:
ORDER BY FIND_IN_SET(id, '0,2,5,1,3')
The most portable means of ordering would be to use a CASE expression:
ORDER BY CASE id
WHEN 0 THEN 1
WHEN 2 THEN 2
WHEN 5 THEN 3
WHEN 1 THEN 4
WHEN 3 THEN 5
END