DISTINCT声明在Doctrine中不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DISTINCT声明在Doctrine中不起作用相关的知识,希望对你有一定的参考价值。

我尝试从学说获得不同的行,但它不起作用(uniq酒店)

      $qb = $this->createQueryBuilder('self');
$qb
    ->distinct('hotel')
    ->join('self.hotel', 'hotel')
    ->where('self.request = :id')
    ->setParameter('id',$requestId);

return $qb->getQuery()->getResult();

这个DQL返回所有酒店。

来自Symfony的SQL查询:

enter image description here

我想要这个查询:

SELECT  count(DISTINCT hotel_id) FROM symfony.search_result where request_id=@requrst_id 
答案

根据您的更新,您要构建的DQL就是这个

$qb = $this->createQueryBuilder('self');
$qb
->select($qb->expr()->countDistinct('hotel.id'))
->join('self.hotel', 'hotel')
->where('self.request = :id')
->setParameter('id',$requestId);

return $qb->getQuery()->getSingleScalarResult();

请注意,我改变了

->distinct('hotel')->select($qb->expr()->countDistinct('hotel.id'))

我也改变了

getResult()getSingleScalarResult()

现在它只返回一个带有唯一hotel_ids计数的结果

以上是关于DISTINCT声明在Doctrine中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

雪花声明在程序中不起作用

不在,在声明中不起作用(预订)

InputView 在 UICollectionView 内的 TextFields 中不起作用

JS 中的 createTextNode 在 Chrome 中不起作用

a(警报和哔声)转义序列字符在 C 语言中不起作用

使用doctrine中的findAll选择不同的结果