perlの配列要素の最初と最後にcharを追加する簡単な方法はありますか?
Ex:my $str ='table1,table2,table3'
my @arry = split (/,/,$str)
私は出力が次のようになるのが好きです
'table1','table2','table3'
したがって、SQLクエリで使用できます
ありがとう。
perlの配列要素の最初と最後にcharを追加する簡単な方法はありますか?
Ex:my $str ='table1,table2,table3'
my @arry = split (/,/,$str)
私は出力が次のようになるのが好きです
'table1','table2','table3'
したがって、SQLクエリで使用できます
ありがとう。
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);
...
}
DBI(https://metacpan.org/module/DBI)を使用してデータベースを操作する場合、クエリでプレースホルダーを使用すると、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