在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();