我正在尝试从以下的学说查询中更改返回的数组:
['city' => 'Warsaw', '1' => '2']
为:
['city' => 'Warsaw', 'count' => '2']
我的查询如下:
$queryBuilder = $this->createQueryBuilder('geo');
$queryBuilder->select([
'geo.city',
$queryBuilder->expr()->countDistinct('geo.id')
]);
$queryBuilder->groupBy('geo.city');
$result = $queryBuilder->getQuery()->getResult();
不确定如何正确地将AS count
写入此子表达式。
答案 0 :(得分:1)
Expr类只不过是一组用于编写表达式的助手。没有什么能阻止你将它与字符串结合起来:
// $qb your query builder
$qb->addSelect($qb->expr()->countDistinct('geo.id') . ' AS geo_count');
如果您不喜欢混合使用expr和字符串,您甚至可以直接编写DQL:
$qb->addSelect('COUNT(DISTINCT geo.id) AS geo_count');
注意:我使用geo_count
作为别名,因为您无法使用count
,因为它将被DQL解析器解释为COUNT
函数。