【问题标题】:SQL_CALC_FOUND_ROWS + zf2SQL_CALC_FOUND_ROWS + zf2
【发布时间】:2014-12-30 10:13:14
【问题描述】:

我在 zf2 中使用了一个使用 SQL_CALC_FOUND_ROWS 的简单选择语句。代码如下所示并使用量词。

$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`

截图:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我也有同样的限制问题。使用 SELECT SQL_CALC_FOUND_ROWS FOUND_ROWS() AS total, posts.* FROM posts LIMIT '10' 也没有效果:(
    • 好吧,就像我说的,FOUND_ROWS() 调用需要在您选择帖子数据后在单独的查询中。
    • 感谢 tim,正如您所说,使用 found_rows() 的另一个选择查询解决了问题。
    猜你喜欢
    • 2011-06-13
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    相关资源
    最近更新 更多