gpt4 book ai didi

perl - 有了SQL SELECT查询,如何获得项目数?

转载 作者:行者123 更新时间:2023-12-03 18:23:16 24 4
gpt4 key购买 nike

我正在使用Dancer框架在Perl中编写一个Web应用程序。该数据库位于sqlite中,我使用DBI进行数据库交互。

我对select语句很好,但是我想知道是否有一种方法可以对选定的行进行计数。

例如。我有

get '/' => sub {
my $content = database->prepare(sprintf("SELECT * FROM content LIMIT %d",
$CONTNUM));
$content->execute;
print(Dumper($content->fetchall_arrayref));
};


如何在不发出另一个查询的情况下计算结果中的所有项目?

我要实现的目的是每页显示30个项目,并知道会有多少页。当然,我可以运行SELECT COUNT(*)foo bar,但是它对我来说似乎是错误的和多余的。我正在寻找一种或多或少的通用DRY,并且不太在意数据库方式。

任何SQL或Perl hack或提示我应该阅读的内容将不胜感激。

//我知道对查询使用字符串连接是不好的

最佳答案

您必须用困难的方式做到这一点:一个查询获取计数,另一个查询获取所需的行集切片:

my $count = $database->prepare('SELECT COUNT(*) FROM content');
$count->execute();
my $n = $count->fetchall_arrayref()->[0][0];

my $content = $database->prepare('SELECT * FROM content LIMIT ?');
$content->execute($CONTNUM);
#...

关于perl - 有了SQL SELECT查询,如何获得项目数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6165028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com