Search Postgresql Archives

Re: selecting data from subquery in same order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <markkicks@xxxxxxxxx> 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@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux