SQLiteリファレンス
当サイトはSQLiteに関するSQL文やコマンドのリファレンスサイトです。
HOME > Oから始まるSQL文・コマンド

offset句

表示するデータの開始位置を指定するSQL文

表示するデータの開始位置を指定する方法

表示するデータの開始位置を指定するには、offset句を使用します。

offset句の書き方

select カラム名 from テーブル名 where カラム名 limit 行数
select カラム名 from テーブル名 limit 行数 offset 開始位置
select カラム名 from テーブル名 limit 開始位置,行数

offsetを使用したり、limit 開始位置,行数という書き方をすることによってどこから、どこまで データを取得するという指定をすることが出来ます。

行数を指定しても、登録された順で表示される保証が無いことに注意してください。 order by句を併用して、order by カラム名 asc limit 0,1などと指定します。

offset句の使い方

PHPのPDOを使用した例

SQL
<?php
$pdo = new PDO("sqlite:./test.sqlite3");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::ATTR_TIMEOUT,5);

$pdo->exec("create table test_table ( id integer , name text , age integer )");
$pdo->exec("insert into test_table values( 1,'takeda',23) , (2,'suzuki',33),(3,'satou',20)");
$pdo->exec("insert into test_table values( 1,null,55)");
$stmt = $pdo->query("select * from test_table limit 0,1");
$result = $stmt->fetchAll();
echo "<pre>";
print_r($result);
echo "</pre>";
?>

SQLiteのGUIツールを使用した例

SQL
C:sq>sqlite3 test.sqlite3
sqlite> .headers on
sqlite> .mode column
sqlite> create table test_table ( id integer , name text , age integer );
sqlite> insert into test_table values( 1,'takeda',23) , (2,'suzuki',33),(3,'satou',20);
sqlite> insert into test_table values( 1,null,55);

sqlite> select * from test_table limit 0,3;
id          name        age
----------  ----------  ----------
1           takeda      23
2           suzuki      33
3           satou       20