I have the following Doctrine2 query:
$qb = $em->createQueryBuilder()
->select('t.tag_text, COUNT(*) as num_tags')
->from('CompanyWebsiteBundle:Tag2Post', 't2p')
->innerJoin('t2p.tags', 't')
->groupBy('t.tag_text')
;
$tags = $qb->getQuery()->getResult();
When run I get the following error:
[Semantical Error] line 0, col 21 near '*) as num_tags': Error: '*' is not defined.
How would I do MySQL count(*) in Doctrine2?
You’re trying to do it in DQL not “in Doctrine 2”.
You need to specify which field (note, I don’t use the term column) you want to count, this is because you are using an ORM, and need to think in OOP way.
However, if you require performance, you may want to use a
NativeQuerysince your result is a simple scalar not an object.