SQL_CALC_FOUND_ROWS + zf2

时间:2014-12-30 10:13:15

标签: zend-framework2 sql-calc-found-rows

我在zf2中使用SQL_CALC_FOUND_ROWS使用简单的select语句。代码如下所示,并使用量词。

$select = $this->getSlaveSql()->select('posts');
$select->quantifier(new Expression('SQL_CALC_FOUND_ROWS'));
$select->columns([
       'total'=>new Expression("FOUND_ROWS()"),
       '*'
]);

生成的sql如下所示

SELECT SQL_CALC_FOUND_ROWS FOUND_ROWS() AS `total`, `posts`.* FROM `posts`

截图: enter image description here

但由于某些原因,found_rows总是返回0并且我不想为分页添加第二个查询。请帮忙。

1 个答案:

答案 0 :(得分:3)

FOUND_ROWS()通常用于后续查询。我怀疑你可以在选择数据的同一个中运行它。请参阅文档中的示例:http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

另请注意,SQL_CALC_FOUND_ROWS在没有限制的查询中没有意义。