11

Hey Guyzこれは、オフセット制限で合計行数を取得することは可能ですか?

シナリオ

SELECT * FROM users limit 0,5; 

このクエリには 300 のレコードが含まれていますが、このクエリをオフセットで呼び出すと、結果が 5 つのレコードしか表示されず、クエリを 2 回書きたくないという問題があります。1 つはページング制限用、もう 1 つは合計レコード数用...

これはいらない

SELECT * FROM users limit 0,5; // paging 
SELECT count(*) FROM users; // count 

このクエリをマージする必要があるか、助けていただければ幸いです

4

1 に答える 1

8

このように SQL_CALC_FOUND_ROWS を使用できます

SELECT SQL_CALC_FOUND_ROWS * FROM users limit 0,5;

LIMIT 句を適用するに行数を取得します。結果を取得するには別のクエリが必要ですが、そのクエリは単純に

SELECT FOUND_ROWS()

したがって、複雑なクエリを繰り返す必要はありません。

于 2012-04-10T07:24:03.713 に答える