在Doctrine2中使用count

时间:2014-02-04 01:42:13

标签: doctrine-orm

按教条计算行数

我有这样的表

id | name
---------
1  | john
2  | ken
3  | john
4  | ken
5  | ken
6  | haku

当我使用这句话时

$em->createQuery("SELECT c.id FROM UserBundle:customer c group by c.name")->getResult()

我可以为每个人获得这对头号。

1 | john
2 | ken
6 | haku

但是,我想知道每个名字出现的次数,如下所示。

1 | john | 2
2 | ken  | 3
6 | haku | 1

我该怎么做?

2 个答案:

答案 0 :(得分:0)

对于复杂的查询,我可能会直接使用PDO,特别是如果您不需要映射到实体。

以下是如何直接使用PDO的示例:

    $q = "your query here";
    $stmt = $em->getConnection()->prepare($q);
    $stmt->execute();
    $results = $stmt->fetchAll(\PDO::FETCH_ASSOC);

答案 1 :(得分:0)

试试这个:

$em->createQuery("SELECT c.name, COUNT(c.id) as cnt FROM UserBundle:customer c group by c.name")->getResult();