PHP+Access(DBとして)で小規模システムを作っています。


起動後に表示される画面は「一覧画面」で、初期状態では全登録データを
表示させ、検索ボックスで条件絞り込みをしていき(必要なら)、
該当データの「詳細表示」ボタンで次の画面へ遷移するという流れです。

この「一覧画面」ですが、データが数十件程度ならふつうに
表示されるのですが、テストで数千件データを入れてみたところ
非常に表示が遅くなります。

そこで「ページング」で対応しようと思ったのですが
調べたところ、AccessのSQLでは「LIMIT」が使えないため
例えば「20件目~40件目のみ呼び出し」的なことができないようです。

何か他によい方法はないでしょうか?

例えばPEAR::Pagerというライブラリなど使っても、結局全件呼び出しで
表示速度が変わらないのは解消できないでしょうか?

宜しくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/27 12:50:54
  • 終了:2011/06/28 22:20:49

ベストアンサー

その他の回答(1件)

id:km1981 No.2

km1981回答回数429ベストアンサー獲得回数492011/06/28 16:54:10

ポイント50pt

例えば、並び順を決定するフィールドが ID として、

21行目から30行目まで表示する場合は、


SELECT TOP 10 * FROM テーブル名
WHERE
ID > (SELECT MAX(ID) FROM (SELECT TOP 20 FROM テーブル名 ORDER BY ID)) 
ORDER BY ID;

というような感じになると思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません