From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Dave Greeko <davegreeko(at)yahoo(dot)com> |
Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: libpq Prepared Statement with dynamic IN operator |
Date: | 2020-11-24 19:27:49 |
Message-ID: | CAKFQuwZatW8rvCq6FbWnEkqqWzYNKWyt24mUpTSQNExUtruyrQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, Nov 24, 2020 at 12:14 PM Dave Greeko <davegreeko(at)yahoo(dot)com> wrote:
> Dear All,
> I am having a hard time figuring out how prepare and execute a Prepared
> Statement with an "IN" operator in the WHERE clause using libpq. The total
> elements that will be passed to IN operator is dynamic and varied at
> runtime.
> here is an example query:
>
> select payload_id,ptime,frequency from codecs where tag IN (‘G729’,’GSM’);
>
> The number of elements to filter for with this particular example is 2 but
> this varies at runtime (between 1 to 127 elements).
> I would like to know what’s the proper syntax of the (char *query)
> parameter when calling the PQprepare() function.
> I tried “select payload_id,ptime,frequency from codecs where tag=ANY(?)”
> but failed
>
>
ANY wants an array - you can either pass an array input literal and do
"?::text[]" or you can pass a probably easier to write "csv" value and
write "ANY(string_to_array(?, ','))".
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Martinez | 2020-11-24 19:53:32 | What is the best way to get the current number of worker processes? |
Previous Message | Dave Greeko | 2020-11-24 19:14:03 | libpq Prepared Statement with dynamic IN operator |