私の iPhone アプリケーションは PHP Web サービスに接続して MySQL データベースからデータを取得しますが、リクエストでは最大 500 件の結果が返されます。
ページングを実装して一度に 20 個の項目を取得する最適な方法は何ですか?
データベースから最初の 20 件のエントリを受け取ったとします。次の 20 件のエントリをリクエストするにはどうすればよいでしょうか?
ベストアンサー1
LIMIT 句を使用すると、SELECT ステートメントによって返される行数を制限できます。LIMIT は 1 つまたは 2 つの数値引数を取りますが、これらは両方とも負でない整数定数である必要があります (準備されたステートメントを使用する場合を除く)。
引数が 2 つの場合、最初の引数は返される最初の行のオフセットを指定し、2 番目の引数は返される行の最大数を指定します。最初の行のオフセットは 0 (1 ではありません) です。
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
特定のオフセットから結果セットの最後までのすべての行を取得するには、2 番目のパラメータに大きな数値を使用します。次のステートメントは、96 行目から最後までのすべての行を取得します。
SELECT * FROM tbl LIMIT 95,18446744073709551615;
引数が 1 つの場合、値は結果セットの先頭から返される行数を指定します。
SELECT * FROM tbl LIMIT 5; # Retrieve first 5 rows
つまり、LIMIT row_count は LIMIT 0, row_count と同等です。