【发布时间】:2012-04-03 08:23:07
【问题描述】:
我是 Perl 的初学者,刚刚完成了一个使用 perl scipt 的调整任务。我现在关注的声明是:
my $sth = $dbh->prepare('SELECT StringValue FROM CustomData WHERE (Record_ID = \'' . $ref->{'Record_ID'} . '\' && Field_ID = \'' . $metadata[11] . '\') LIMIT 1;');
当前语句将提取与Record_ID 值匹配的每条记录。但是,需要将其更改为仅拉取 Record_ID 以数字 1、2、9 开头的记录。
我认为这更像是一个正则表达式问题,对吗?如果是这种情况,我应该只修改
Record_ID = \'' . $ref->{'Record_ID'}
部分。那是对的吗?或者这应该在prepare 语句中修复?
【问题讨论】:
-
由于“limit 1”,它会拉取第一个匹配的记录。
-
您应该使用占位符而不是尝试自己插入和引用变量。请参阅 DBI 文档。