-
我有一个像这样的选择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)(在我的查询中为?)。我该怎么做。
您可以使用->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();