Errto has asked for the wisdom of the Perl Monks concerning the following question:
In my code I would like to do something like this:
and have it return me four rows for the four IDs I passed in. I realize that it couldn't work exactly like that because passing multiple arguments to execute provides values to multiple placeholders, but is there any way of achieving it? I use Oracle and occasionally MySQL.my @ids = (1,2,3,4); my $sth = $dbh->prepare('select * from a_table where id in (?)'); $sth->execute(@ids);
The only alternative I know of is to load the IDs into some temporary table and use a sub-select. But I don't like the idea of having to insert a bunch of physical records just to run a query. What alternatives do I have? Thanks,
Update: I realized that the join ',', ('?') x @ids technique may be applicable here, but I would prefer to keep a single static SQL statement if I can.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Can a DBI Placeholder accept multiple values?
by runrig (Abbot) on Feb 08, 2008 at 22:06 UTC | |
Re: Can a DBI Placeholder accept multiple values?
by perrin (Chancellor) on Feb 08, 2008 at 22:30 UTC | |
Re: Can a DBI Placeholder accept multiple values?
by assemble (Friar) on Feb 09, 2008 at 00:54 UTC | |
by valdez (Monsignor) on Feb 10, 2008 at 10:16 UTC | |
Re: Can a DBI Placeholder accept multiple values?
by igelkott (Priest) on Feb 09, 2008 at 23:53 UTC | |
by Anonymous Monk on May 13, 2008 at 14:27 UTC | |
by igelkott (Priest) on May 13, 2008 at 14:45 UTC |
Back to
Seekers of Perl Wisdom