0

データベースに 5000 行あるとします。結果をページ分割したいのですが、5000 行すべてではなく、最後の 1000 行のみをページ分割したいのです。どうすればよいですか? 次のようなクエリがあります。

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 0,25

しかし、このクエリは 5000 件すべての結果を取得します。最新の 1000 件の結果を取得して、それをページ分けしたいだけです。どうすればいいですか?主キーである自動インクリメントの id フィールドがあります。それが役立つかどうかはわかりません。

4

2 に答える 2

1

ページネーションに SQL を使用する場合は、これらのクエリを連続して呼び出す必要があります。

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1000,25
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1025,25
SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT 1050,25
...
...

言い換えると

SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT <offset>,<pageSize>
于 2012-04-14T15:39:44.200 に答える
0

次のようなことを試してください:

SELECT * FROM table WHERE id > ((SELECT MAX(id) FROM table) - 1000);

またはこれ:

SELECT * FROM (SELECT * FROM table ORDER BY id DESC LIMIT 1000) AS ttbl ORDER BY
                                                                              id ASC; 
于 2012-04-14T15:13:27.437 に答える