PHP MySQLからのデータ選択の制限

❮ 前章へ 次章へ ❯

MySQLデータベースからのデータ選択の制限

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";

カンマを使用すると、数字が逆になることに注意してください。


❮ 前章へ 次章へ ❯