【问题标题】:Solely COUNT(*) from Zend_DB Select Statement (Subquery)Zend_DB Select 语句(子查询)中的唯一 COUNT(*)
【发布时间】:2012-04-01 11:13:54
【问题描述】:

我正在尝试围绕现有 Zend_Db 选择语句包装 count(*) 查询,但我能得到的只是:

SELECT `t`.*, COUNT(*) AS `TotalRecords` FROM (SELECT ....) AS `t`

不过我喜欢去掉 t.*,因为我只需要 count(*)。

这是我目前的代码:

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

感谢任何帮助!

【问题讨论】:

    标签: php mysql sql zend-framework zend-db


    【解决方案1】:

    你可以简单地写:

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

    【讨论】:

    • 是否也可以仅使用 $select 来获得结果。这意味着没有 $db?
    • 如果你的 mobel 是扩展 Zend_Db_Table,你可以做类似 $model->select()->from->(...)
    • $res = $doc->select()->from($select, 'COUNT(*) as rowcount')->fetchAll()->toArray(); 这样的东西对我不起作用。在这种情况下 fetchAll() 是未知的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2011-05-09
    • 1970-01-01
    • 2023-02-25
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多