LIMIT句
取り出すデータの数や開始位置の条件を追加する
MySQLとPostgreSQL以外はLIMIT句がないので同様の処理をする場合は次のようにすると高速で処理できます。
11件目から5件を抽出する場合、テーブルから10件を除いたものから上位の5件を抽出する手法です。
SELECT TOP 5 table_name.id, table_name.name FROM table_name
WHERE NOT EXISTS
(SELECT * FROM
(SELECT TOP 10 * FROM table_name) AS ex_table_name
WHERE table1.id = ex_table_name.id)
);
ORDER BY table_name.id
WHERE NOT EXISTS
(SELECT * FROM
(SELECT TOP 10 * FROM table_name) AS ex_table_name
WHERE table1.id = ex_table_name.id)
);
ORDER BY table_name.id
上位10件までのテーブルex_table_nameを作成し、それを全体のテーブルから除いています。
対応SQL
- MySQL
- PostgreSQL
書式などが異なる