在dql中的orderby子句中应用聚合函数

时间:2014-09-11 07:46:23

标签: php symfony doctrine-orm dql

  • 我有一个像这样的选择dql查询 -

    $i=0;
    $max_result=50;
    $qb=$this->em->createQueryBuilder();
    $from='Entities\EventVisitor evtvstr';
    $qb->select('evtvstr.user, evtvstr.metadata, u.id')
    ->add('from', $from)
    ->groupBy('evtvstr.user')
    ->orderBy('?')
    ->setFirstResult($i)
    ->setMaxResults($max_result)
    ->distinct();
    $query = $qb->getQuery();
    $query->getSQl();
    $results = $query->getResult();
    print_r($results);
    
  • 现在我想在order by子句中应用max(created)(在我的查询中?)。 我怎么能这样做。

1 个答案:

答案 0 :(得分:0)

您可以使用->addSelect('max(created) AS HIDDEN max_created'),然后按max_created

排序
$qb=$this->em->createQueryBuilder();
$from='Entities\EventVisitor evtvstr';
$qb->select('evtvstr.user, evtvstr.metadata, u.id')
->addSelect('max(created) AS HIDDEN max_created')
->add('from', $from)
->groupBy('evtvstr.user')
->orderBy('max_created')
->setFirstResult($i)
->setMaxResults($max_result)
->distinct();