如何参数化包含IN具有可变数量参数的子句的查询,比如这个?
SELECT * FROM Tags
WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
ORDER BY Count DESC
Run Code Online (Sandbox Code Playgroud)
在此查询中,参数的数量可以是1到5之间的任何值.
我不希望为此(或XML)使用专用存储过程,但如果有一些特定于SQL Server 2008的优雅方式,我对此持开放态度.
我通常使用简单的引号,但有时我得到很长的行,我不能打破,也需要使用转义字符,所以我得到这样的东西:
my $str = "select query_accession,query_tag,hit_accession,hit_tag,significance from summaryTables where query_id = \'$query_id\';"
Run Code Online (Sandbox Code Playgroud)
我知道在Perl中有各种其他方法来表示字符串.你会推荐什么?
更新 感谢所有人提供与SQL相关的建议.我学到了一些有价值的东西,但是,我的问题仍然存在(作为一般的问题,不管SQL):是否有一些运算符允许引用而不会捕获换行符?
我现在做的是:
my $str = "123 123 456 sdndfnd sdfdmd " .
"dfsdjkfs 343489 dfjsdj 3 34kdfsk kd " .
"fd kd9534 rfg 546 5";
Run Code Online (Sandbox Code Playgroud)
这很难看.
可能重复:
数组是否有SQL参数绑定?
我想知道是否还有将bind_param与SQL IN语句一起使用.根据perl文档,不能使用bind_param_array.有没有人遇到过同样的情况?