MySQLは、取得するレコードの数を指定するために使用する LIMIT 句を提供しています。
LIMIT句を使用すると、複数ページの結果やSQLによるページネーションを簡単にコーディングできるので、大きなテーブルには非常に便利です。 大量のレコードを返すと、パフォーマンスに影響を与える可能性があります。
"Orders"というテーブルから、1~30までのすべてのレコードを選択したいとします。 SQLクエリは、次のようになります:
$sql = "SELECT * FROM Orders LIMIT 30";
上のSQLクエリを実行すると、先頭から30個のレコードが返されます。
16~25までのレコードを選択したい場合はどうなりますか?
Mysqlは、これを処理する方法として、OFFSET を提供しています:
下のSQLクエリは、「10レコードしか返しません。レコード16(オフセット15)から開始します」というメッセージを表示します:
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15";
より短い構文を使用して、同じ結果を得ることもできます:
$sql = "SELECT * FROM Orders LIMIT 15, 10";
カンマを使用すると、数字が逆になることに注意してください。