2012-04-01 116 views
2

我试图环绕现有Zend_Db的SELECT语句中的COUNT(*)查询,但所有我能得到的是COUNT(*)但是我喜欢摆脱t。*,因为我只需要count(*)。单从Zend_Db的Select语句(子查询)

这是我到目前为止的代码:

$db = Zend_Registry::get('db'); 
$select = $dbmodel->getSomething(); //zend select object 
$outterSelect = new Zend_Db_Select($db); 
$outterSelect->from($select)->columns(array('TotalRecords' => new Zend_Db_Expr('COUNT(*)'))); 
echo $outterSelect->__toString(); 

任何帮助表示赞赏!

回答

5

你可以简单的写:

$outterSelect->from($select, 'COUNT(*) as TotalRecords'); 
+0

将它也可以只用$选择得到的结果。这意味着没有$ db? – dforce 2012-04-01 20:34:13

+0

如果你的mobel是扩展Zend_Db_Table,你可以做一些像$ model-> select() - > from - >(...) – 2012-04-01 22:43:01

+0

类似这样的'$ res = $ doc-> select() - > from($选择'COUNT(*)as rowcount') - > fetchAll() - > toArray();'不适用于我。 fetchAll()在这种情况下是未知的。 – dforce 2012-04-02 14:20:57