column_name in ('FOO', 'BAR', 'BAZ') #### (column_name = 'FOO' or column_name = 'BAR' or column_name = 'BAZ') #### (column_name like 'FO%' or column_name like 'B%' or column_name = 'CAT') #### sub generate_criteria { my ($ColName, $Criteria) = @_; my @fields = split /\|/, $Criteria; return " $ColName = '$field[0]' " if @fields==1; my @ret; my @wildfields = grep { $_ =~ /[%_]/ } @fields; if (@wildfields) { push @ret, join(" or ", map { "$ColName like '$_'" } @wildfields; } my @constfields = grep { $_ !~ /[%_]/ } @fields; if (@constfields) { push @ret, " $ColName in (" . join(", ", map { "'$_'" } @constfields) . ")"; } return join(" ", "(", @ret, ")"); } #### my @fields = map { s/'/''/g; $_ } split /\|/, $Criteria; #### sub generate_criteria { my ($ColName, $Criteria) = @_; my @fields = map { s/'/''/g; $_ } split /\|/, $Criteria; return "( " . join(" or ", map { "$ColName LIKE '$_'" } @fields) . " )"; }