我已经在网站上搜索过了,但没有找到任何回答我的问题的内容。以下是详细信息:
我正在使用简单的 select 查询查询数据库,实际上(根据情况)它不应该返回超过 5 到 6 条记录。我只想检查是否返回了多个记录。如果返回了多个记录,则在 else 语句中执行相应操作;如果只返回了一个记录,则继续运行脚本。
代码如下:
my $sql = qq { SELECT col1, col2, col3 FROM table WHERE col1 = 'foo' };
my $sth = $dbc->prepare_cached($sql) or die "Could not prepare statement: " . $dbc->errstr; $sth->execute() or die "Could not execute statement: " . $sth->errstr;
# 不确定如何高效地检查是否返回了多行,并且仍然可以继续进行。这就是我的问题!我在考虑嵌套 if 语句来检查是否返回了任何行,然后继续检查一行或多行?但是如何检查这个呢(像 count 函数一样)? if (my $ref = $sth->fetchrow_hashref()) {
# 返回了一行...
} else { # 返回了多行... 糟糕! }
如果您知道我找不到的解答此问题的帖子,请指引我去看看。谢谢!
问候, BorisTheBulletDodger!
我正在使用简单的 select 查询查询数据库,实际上(根据情况)它不应该返回超过 5 到 6 条记录。我只想检查是否返回了多个记录。如果返回了多个记录,则在 else 语句中执行相应操作;如果只返回了一个记录,则继续运行脚本。
代码如下:
my $sql = qq { SELECT col1, col2, col3 FROM table WHERE col1 = 'foo' };
my $sth = $dbc->prepare_cached($sql) or die "Could not prepare statement: " . $dbc->errstr; $sth->execute() or die "Could not execute statement: " . $sth->errstr;
# 不确定如何高效地检查是否返回了多行,并且仍然可以继续进行。这就是我的问题!我在考虑嵌套 if 语句来检查是否返回了任何行,然后继续检查一行或多行?但是如何检查这个呢(像 count 函数一样)? if (my $ref = $sth->fetchrow_hashref()) {
# 返回了一行...
} else { # 返回了多行... 糟糕! }
如果您知道我找不到的解答此问题的帖子,请指引我去看看。谢谢!
问候, BorisTheBulletDodger!