在Doctrine中,我可以做到:
public function getCount()
{
$q = $this->createquery('q')
->select('*')
->addSelect('count(q.name) as count')
->groupBy('q.name')
->orderBy('count DESC');
return $q->execute();
}
如何在Symfony 1.4中的Propel中做同样的事情?
该死的!它比那更容易!
如果需要计算给定查询的结果行,则需要使用count()终止方法,基本上:
MyTableQuery::create()->count();
有关更多信息,请阅读以下文档部分:http://www.propelorm.org/documentation/03-basic-crud.html#query_termination_methods
如果要在查询中添加count或nb extra列,表示COUNT或SUM等sql聚合函数,则应使用withColumn()方法:
$query = MyTableQuery::create()
->withColumn('COUNT(*)','Count')
->select(array('Name','Count'))
->groupByName()
->orderByCount()
;
$results = $query->find();