php - ZF2 - 如何在 columns() 中使用 SQL_CALC_FOUND_ROWS

标签 php mysql zend-framework zend-framework2

我正在尝试在查询中使用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'

最佳答案

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

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

关于php - ZF2 - 如何在 columns() 中使用 SQL_CALC_FOUND_ROWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16036645/

相关文章:

PHP 通过 URL 参数发布

php - 连接多个数据库并在php中跨数据库加入查询

php - 使用限制时sql查询返回错误

mysql - 在指定了 ORDER BY 和 LIMIT 并且实际上只需要连接少量行的 JOIN 情况下,MySQL 的行为如何?

php - 保持 Javascript 和服务器代码同步

php - 使用 Zend 框架时从多个表中获取数据?

mysql - 使用 ZendFramework 和 Mysql 通过 Cron 获取大数据

php - 如何在 Javascript 和 PHP 中验证非英语(UTF-8)编码的电子邮件地址?

用于查看性能缓慢的 MySQL 查询

mysql - 防止 'too many connections'(ConnectionPool不是答案,寻找mysql服务器端解决方案)