in reply to How to use Perl DBI to select just on column of db

What are you trying to do again? Where is the code that you've tried thus far, and what problem do you have with it?

You've already asked a few questions on perlmonks, but maybe try reading How do I post a question effectively?.

- Miller

Update: Thank you for the updated posting

The below code uses a placeholder like you described.

my $sth = $dbh->prepare(qq{SELECT val1 FROM tb11 WHERE x=?}) foreach my $id (@id){ $sth->execute($id) or die $dbh->errstr; $sth->bind_columns(\my $val1); while ($sth->fetch) { push @ary, $val1; } }

Or in a single statement

if (@id) { my $ids = join ',', map {$dbh->quote($_)} @id; $col_ref = $dbh->selectcol_arrayref(qq{SELECT val1 FROM tb11 WHERE + x IN ($ids)}) }

Update2Mistype, meant prepare not selectcol_arrayref

Replies are listed 'Best First'.
Re^2: How to use Perl DBI to select just on column of db
by lightoverhead (Pilgrim) on Mar 18, 2011 at 15:14 UTC
    Hi Miller,

    Thank you for your answer. However, I don't understand how you get statement handle $sth

    the return value of $dbh->selectcol_arrayref is the reference to the column which containing all the values of rows. But you treated it as a statement handle.

    As you can see from my previous code, I put the reference to an array containing the values of the column from each row into @ary. But you seem put every value of row into this @ary which is what I tried to avoid.

    Could you explain more to me? Thanks.