如何计算DQL查询返回的行数?

时间:2013-10-08 12:36:54

标签: symfony doctrine-orm dql

我想计算从DQL查询返回的行数,我是怎么做到的? 这是我的DQL查询:

$items=$em->createQuery("select i.unitPrice,i.quantity,i.linetotal,i.description from InvoicesInvoicesBundle:Invoiceshasitems i where i.invoiceid='".$id."'");
$itemdata=$items->getResult();

3 个答案:

答案 0 :(得分:1)

使用Count()

$items=$em->createQuery("select COUNT(i.unitPrice)
                         from InvoicesInvoicesBundle:Invoiceshasitems i
                          where i.invoiceid='".$id."'");
    $itemdata=$items->getResult();

http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html

如果您经常使用DQL,则应将上述链接加入书签。

答案 1 :(得分:1)

试试此代码

 $qbTotal = $this->em->createQueryBuilder();
 $qbTotal->select('count(i)')
            ->from('InvoicesInvoicesBundle:Invoiceshasitems', 'i')
            ->where('i.invoiceid = :id')
            ->setParameter('id', $id)
             ;

 $qeuryTotal = $qbTotal->getQuery();
 $totalItems = $qeuryTotal->getSingleScalarResult();

答案 2 :(得分:0)

嗯,@Praveesh有答案虽然有一点点错字。应该是:id而不是?id。

但是这个链接为我赢得了680个搜索,所以我很确定它是正确的:Count Rows in Doctrine QueryBuilder