Where is your code? If you want to submit a bug report, you should
present a repeatable test case.
Anyway, there is no bug with that query. As the following snippet shows, the query you have proposed works just fine.
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use DBI;
my $user = undef;
my $password= undef;
my $dbh=DBI->connect("dbi:mysql:test;host=localhost"
. ";mysql_read_default_file=$ENV{HOME}/.my.cnf",
$user,
$password,
{RaiseError => 1})
or die "Can't connect: $DBI::errstr\n";
$dbh->do(qq{DROP TABLE IF EXISTS t}) ;
$dbh->do(qq{
CREATE TABLE t (
i int not null,
c char(10),
primary key (i))
});
$dbh->do(qq{
insert into t (i,c) values
(1, 'cat'),
(2,'dog'),
(3,'rabbit'),
(4,'horse')
}) ;
my $query = q|SELECT * FROM t WHERE REPLACE(c,"","") REGEXP ?|;
my $sth = $dbh->prepare($query);
$sth->execute('t$');
print "one by one\n";
while (my $rec = $sth->fetchrow_arrayref()) {
print Dumper($rec);
}
print "all at once\n";
print Dumper $dbh->selectall_arrayref($query,{ Slice=>{} }, '^d' );
one by one
$VAR1 = [
1,
'cat'
];
$VAR1 = [
3,
'rabbit'
];
all at once
$VAR1 = [
{
'c' => 'dog',
'i' => 2
}
];
Perhaps, you should consider a bug in YOUR code.
PEBCAK.