代码之家  ›  专栏  ›  技术社区  ›  Sunil Chhimpa

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

  •  0
  • Sunil Chhimpa  · 技术社区  · 10 年前
    • 我有一个这样的选择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);
      
    • 现在我想按子句的顺序应用max(created)(在我的查询中)。 我该怎么做呢。

    1 回复  |  直到 10 年前
        1
  •  0
  •   M Khalid Junaid    10 年前

    您可以使用 ->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();