我得到了一个循环数据库的变量列表。如何检测变量不在数据库中?我应该使用什么查询?一旦检测到变量不在数据库中,如何打印出错误消息。
我的代码:
$variable = $sql->{'variable'};
foreach my $sql (@Records){
**Below statement will select existed variable, what should I change to make it select not existed variable**
$sqlMySQL = "Select LOT from table where LOT like '%$variable%'";
}
**If not exist**{
print("Not exist")
}
预期结果:
当$variable
遍历数据库时,如果数据库中不存在$variable
,则打印出$variable
或不存在。
感谢您查看,评论和回答。
答案 0 :(得分:1)
我会这样做与下面类似。
DBI
进行$variable
调用,因此请循环遍历数组以检查散列中是否存在。示例强>
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbh =
DBI->connect( "dbi:SQLite:dbname=test.db", "USERNAME", "PASSWORD",
{ RaiseError => 1 },
) or die $DBI::errstr;
my @vars = ( 25, 30, 40 );
my $hash_ref =
$dbh->selectall_hashref( q / SELECT LOT FROM table /, q / LOT / );
$dbh->disconnect();
foreach (@vars) {
if ( exists $hash_ref->{$_} ) {
print $_ . "\n";
}
else {
print "Does not exist\n";
}
}
与此类似的内容会将您表格的所有LOT
列值拉入哈希key
value
对,然后您可以将其与array
中的foreach
进行比较{1}}循环。