You may use something like this in a stored function: DECLARE a INTEGER[]; BEGIN a := '{2341548, 2325251, 2333130, 2015421,2073536, 2252374, 2273219, 2350850, 2367318, 2032977, 2032849}'; select * from users where id = any(a) order by idx(a, id); END;
Or in the plain SQL: select * from users where id = any(a) order by idx('{2341548, 2325251, 2333130, 2015421,2073536, 2252374, 2273219, 2350850, 2367318, 2032977, 2032849}', id); Note that it is pretty fast only if the array contains not too much elements (e.g. 20). Do not use for large arrays! On Sun, Aug 17, 2008 at 4:11 AM, mark <[EMAIL PROTECTED]> wrote: > hi > if i execute this statement: > > select * from users where id in (2341548, 2325251, 2333130, 2015421, > 2073536, 2252374, 2273219, 2350850, 2367318, 2032977, 2032849, ) > > the order of rows obtained is random. > > is there anyway i can get the rows in the same order as the ids in > subquery? or is there a different statement i can use? > thanks! > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >