my $dbh = C4::Context->dbh;
local $dbh->{RaiseError} = 1;
while ( my ( $record_id, $value ) = each %{$self->{values}} ) {
my $dbh = C4::Context->dbh;
local $dbh->{RaiseError} = 1;
while ( my ( $record_id, $value ) = each %{$self->{values}} ) {
if ref $class and UNIVERSAL::can($class,'can');
my $tablename = $args->{tablename};
my $searchable = $args->{searchable};
if ref $class and UNIVERSAL::can($class,'can');
my $tablename = $args->{tablename};
my $searchable = $args->{searchable};
if ref $class and UNIVERSAL::can($class,'can');
my $record_id = $args->{record_id};
if ref $class and UNIVERSAL::can($class,'can');
my $record_id = $args->{record_id};
sub get_matching_record_ids {
my ( $class, $args ) = @_;
sub get_matching_record_ids {
my ( $class, $args ) = @_;
if ref $class and UNIVERSAL::can($class,'can');
my $fields = $args->{fields} // [];
my $tablename = $args->{tablename};
if ref $class and UNIVERSAL::can($class,'can');
my $fields = $args->{fields} // [];
my $tablename = $args->{tablename};
) AS field$i USING (id)
WHERE field$i.id IS NOT NULL
) AS values$i |;
$subquery .= ' USING (record_id)' if $i > 1;
push @subqueries, $subquery;
) AS field$i USING (id)
WHERE field$i.id IS NOT NULL
) AS values$i |;
$subquery .= ' USING (record_id)' if $i > 1;
push @subqueries, $subquery;
- push @args, $field->{name}, $tablename, $field->{value};
+ push @args, $field->{name}, $tablename, ( $exact_match ? $field->{value} : "%$field->{value}%" );