SQLite | データ検索 | LIMITとOFFSET

LIMITは取得行数、OFFSETは開始位置を指定する。

SELECT columns FROM table_name LIMIT row_count;

保存行数より大きい値を指定してもエラーにはならず、利用可能な全行を返す。

create table user (id integer, name text, address text);
insert into user values (1, 'devkuma', 'Seoul');
insert into user values (2, 'kimkc', 'Busan');
insert into user values (3, 'araikuma', 'Paju');
insert into user values (4, 'happykuma', 'Paju');
insert into user values (5, 'mykuma', 'Daejeon');
insert into user values (6, 'yourkuma', 'Seongnam');
insert into user values (7, 'raccoon', 'Suwon');
insert into user values (8, 'noguri', 'Suwon');
select * from user limit 4;

最後のクエリは先頭4行を返す。

OFFSET

SELECT columns FROM table_name LIMIT row_count OFFSET offset;
SELECT columns FROM table_name LIMIT offset, row_count;

オフセット4は4行を読み飛ばし、5行目から開始する。OFFSETだけでは使用できない。

select * from user limit 3 offset 4;
select * from user limit 4, 3;

どちらもID 5、6、7を返す。ORDER BYと併用すると、先に並べ替えてから件数を制限する。

select * from user order by address limit 5;