| From: | Tino Wildenhain <tino(at)wildenhain(dot)de> |
|---|---|
| To: | Bruno Wolff III <bruno(at)wolff(dot)to>, Stefan Berglund <sorry(dot)no(dot)koolaid(at)for(dot)me>, pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Is This A Set Based Solution? |
| Date: | 2007-03-16 08:24:03 |
| Message-ID: | 45FA5423.8020206@wildenhain.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Bruno Wolff III schrieb:
> On Mon, Mar 12, 2007 at 11:15:01 -0700,
> Stefan Berglund <sorry(dot)no(dot)koolaid(at)for(dot)me> wrote:
>> I have an app where the user makes multiple selections from a list. I
>> can either construct a huge WHERE clause such as SELECT blah blah FROM
>> foo WHERE (ID = 53016 OR ID = 27 OR ID = 292 OR ID = 512) or I could
>> alternatively pass the string of IDs ('53016,27,292,512') to a table
>> returning function which TABLE is then JOINed with the table I wish to
>> query instead of using the unwieldy WHERE clause. The latter strikes me
>> as a far more scalable method since it eliminates having to use dynamic
>> SQL to construct the ridiculously long WHERE clause which will no doubt
>> ultimately bump up against parser length restrictions or some such.
>
> How big is huge?
> If the list of IDs is in the 1000s or higher, then it may be better to
> load the data into a temp table and ANALYSE it before running your query.
> Otherwise, for smaller lists the IN suggestion should work well in recent
> versions.
Show me a user which really clicks on 1000 or more checkboxes on a
webpage or similar ;)
I'd think around 20 values is plenty.
Regards
Tino
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robin Ericsson | 2007-03-16 08:40:52 | Re: simple coordinate system |
| Previous Message | Richard Huxton | 2007-03-16 08:05:14 | Re: Column does not exist when trying to insert data. |