0

我正在尝试在查询中使用SQL_CALC_FOUND_ROWS。但我无法在没有AS Expression1的情况下创建我的查询

$select = $this->getSql()->select();
            $select->columns(array("*", new Expression(" SQL_CALC_FOUND_ROWS *")));
            $select->join( array ( 
                    'c2h' => 'site_category2help_topic' ), 'c2h.help_topic_id = site_help_topic.help_topic_id', array ( 
                    "*" ) );
            $select->where( " c2h.category_id = $categoryId " );
            $select->limit($limit);
            $select->offset($offset);

结果:

SELECT site_help_topic.*, SQL_CALC_FOUND_ROWS * *AS Expression1*, c2h.* 

FROM site_help_topic 

INNER JOIN site_category2help_topic AS c2h 

ON c2h.help_topic_id = site_help_topic.help_topic_id 

WHERE c2h.category_id = 5 LIMIT '15' OFFSET '0'

它应该是 :

SELECT site_help_topic.*, SQL_CALC_FOUND_ROWS *, c2h.* 

FROM site_help_topic 

INNER JOIN site_category2help_topic AS c2h 

ON c2h.help_topic_id = site_help_topic.help_topic_id 

WHERE c2h.category_id = 5 LIMIT '15' OFFSET '0'
4

1 回答 1

1

Sql\Select 有一个 option QUANTIFIER,您应该能够使用它而不是将其作为列名。

类似于这里How to use SQL_CALC_FOUND_ROWS with Zend\Db\TableGateway

于 2013-04-16T20:51:28.447 回答