ORDER BY the IN value list
You can do it quite easily with (introduced in PostgreSQL 8.2) VALUES (), (). Syntax will be like this: select c.* from comments c join ( values (1,1), (3,2), (2,3), (4,4) ) as x (id, ordering) on c.id = x.id order by x.ordering