my $query = qq{SELECT * FROM table_name WHERE (field1 LIKE ?) AND (field2 LIKE ?) AND ... AND (fieldn LIKE ?) ORDER BY ...}; my $rv = $sth->prepare($query); my @query_for = ('%') x $number_of_fields; # then replace those elements in @query_for # with values from whereever, where appropriate $sth->execute(@query_for);