0

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 として返され、ページネーションのために 2 つ目のクエリを追加したくありません。助けてください。

4

1 に答える 1

3

FOUND_ROWS()通常、後続のクエリで使用されます。データを選択したのと同じ場所で実行できるとは思えません。ドキュメントの例を参照してください: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows

SQL_CALC_FOUND_ROWSまた、制限のないクエリでは意味がないことに注意してください。

于 2014-12-30T10:26:24.193 に答える