From: | Sam Mason <sam(at)samason(dot)me(dot)uk> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Converting string to IN query |
Date: | 2008-09-12 15:57:45 |
Message-ID: | 20080912155745.GE7271@frubble.xen.chris-lamb.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Fri, Sep 12, 2008 at 04:04:18PM +0100, Richard Huxton wrote:
> Andrus wrote:
> > String contains list of document numbers (integers) like:
> >
> > '1,3,4'
> >
> > How to SELECT documents whose numbers are contained in this string.
>
> > Numbers should be passed as single string literal since FYIReporting
> > RDLEngine does not allow multivalue parameters.
>
> Hmm - might be worth bringing that to their attention.
I'm probably missing something, but does PG?
> Try string_to_array(). Example:
>
> SELECT * FROM generate_series(1,10) s
> WHERE s = ANY (string_to_array('1,3,5,7', ',')::int[]);
I don't think you need the string_to_array function call, an array
literal should do perfectly well here. I.e.
WHERE s = ANY ('{1,2,3}'::int[]);
the literal can of course be a parameter as well:
WHERE s = ANY ($1::int[]);
Sam
From | Date | Subject | |
---|---|---|---|
Next Message | William Garrison | 2008-09-12 15:57:57 | Fastest way to restore a database |
Previous Message | Dmitry Koterov | 2008-09-12 15:35:18 | TSearch2: find a QUERY that does match a single document |