有没有更简单的方法将char添加到perl中数组元素的开头和结尾。
Ex:my $str ='table1,table2,table3'
my @arry = split (/,/,$str)
我喜欢输出看起来像
'table1','table2','table3'
因此可以在sql查询中使用
感谢。
答案 0 :(得分:9)
join(',', map "'$_'", @arry)
是你要求的。
但使用占位符要好得多:
my $str = 'table1,table2,table3';
my @arry = split(/,/, $str);
if (@arry) {
my $query = 'select * from tablename where colname in (' . join(',',('?') x @arry) . ')';
my $sth = $dbh->prepare($query);
$sth->execute(@arry);
...
}
答案 1 :(得分:3)
如果您要使用DBI(https://metacpan.org/module/DBI)来处理数据库,如果您在查询中使用占位符,它可以为您执行此操作,这样您就不必引用值。
例如,如果要在表中插入内容:
$dbh->do("INSERT INTO table VALUES(?, ?, ?)", undef, @arry)
or die $dbh->errstr;
其中@arry
是一个数组,其中包含3个要插入表中的值。
有关详情,请访问https://metacpan.org/module/DBI#Placeholders-and-Bind-Values