取得データの行数を制限

広告

SELECT文でデータを取得する時に、取得するデータの行数の上限を設定する方法を確認します。書式は次の通りです。

SELECT col_name, ... FROM tbl_name LIMIT [offset,] row_count;

LIMIT句の後に取得するデータの行数を指定します。

例えば次のように記述します。

SELECT * FROM orderdata LIMIT 10;

上記の場合、取得するデータの上限を10に設定します。データは先頭から順に取得します。データ数が10よりも少ない場合には格納されているデータを全て取得します。

なお取得を開始するデータの位置をOFFSETを使って指定します。(先頭データのオフセットは0です)。

例えば次のように記述します。

SELECT * FROM orderdata LIMIT 3, 10;

上記の場合、4番目のデータから取得する行数の上限を10としてデータを取得します。

サンプル

実際に試してみます。まず次のようなテーブルを作成します。

mysql> create table personal(name varchar(20), address varchar(20), old int);

p12-1

テーブルには次のようなデータを追加してあります。

p12-2

ではデータを5行だけ取得してみます。

mysql> select * from personal limit 5;

p12-3

今度は「old」カラムの値を昇順に並べ替えてからデータを5行取得します。

mysql> select * from personal order by old limit 5;

p12-4

今度は「old」カラムの値を昇順に並べ替えてからデータを5行取得します。この時、3番目のデータから取得します。

mysql> select * from personal order by old limit 2, 5;

p12-5

( Written by Tatsuo Ikura )