【发布时间】:2011-10-07 09:43:10
【问题描述】:
id | name 1 | aaa 2 | bbb 3 | ccc 4 | ccc 5 | aaa 6 | ccc 7 | ccc 8 | aaa 9 | bbb 10 | ccc 11 | aaa
我想成为:
name | count ccc | 5 aaa | 4 bbb | 2
orderby 计数 DESC
我做了:
public function getCount() { $q = $this->createQuery('q') ->select('*') ->addSelect('count(q.name) as count') ->groupBy('q.name') ->orderBy('count DESC'); return $q->execute(); }
但如果:
foreach ($count as $c) { echo $c; }
这仅显示表中的第一个数据。
我该怎么做?
【问题讨论】:
-
附注:最好分配执行
$result = $q->execute();的输出,然后释放查询$q->free();,然后才返回结果return $result。这将导致教义释放查询内存以供 PHP 重用。 -
我必须在哪里使用 $q->free() ?
-
直接在执行之后。例如:
$result = $q->execute(); $q->free(); return $result;
标签: php mysql sql symfony1 doctrine