I'm puzzled by the behaviour of the following snippet of code:
my $query = 'apple'; my $sql = qq{ SELECT COUNT(*) FROM table1 WHERE name=? UNION SELECT COUNT(*) FROM table2 WHERE name=? }; my $sth->execute($sql, $query, $query) my $rows = $sth->fetchall_arrayref(); #table1 apple apple orange pear #table2 pear apple orange orange
That's correct. However, when the contents of the tables change as follows (1 more 'apple' added to table2):$VAR1 = [ [ '2' ], [ '1' ] ];
That is, two instances of 'apple' in table1 and two in table2. In this case, $rows returns:#table1 apple apple orange pear #table2 pear apple orange orange apple
That is, a single annonymous array in an AoA.$VAR1 = [ [ '2' ] ];
I was expecting $VAR1 to contain:
$VAR1 = [ [ '2' ], [ '2' ] ];
Thanks in anticipation :)
In reply to Perl DBI fetchall_arrayref - puzzling behaviour by kiat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |