表 table1,主鍵 ID 自增但不連續。要求查詢第 31-40 行記錄(按 ID 排序)。
SELECT * FROM `table1`
ORDER BY `ID`
OFFSET 30 ROWS FETCH NEXT 10 ROWS ONLY;
SELECT * FROM `table1`
ORDER BY `ID`
LIMIT 10 OFFSET 30;
SELECT TOP 10 * FROM (
SELECT TOP 40 * FROM `table1` ORDER BY `ID`
) AS t ORDER BY `ID` DESC;
SELECT * FROM (
SELECT a.*, ROWNUM rn FROM (
SELECT * FROM `table1` ORDER BY `ID`
) a WHERE ROWNUM <= 40
) WHERE rn > 30;
WHERE id > last_max_id ORDER BY id LIMIT 10。SELECT * FROM t JOIN (SELECT id FROM t ORDER BY id LIMIT 10 OFFSET 30) tmp USING (id) 減少回表。LIMIT/OFFSET 與 OFFSET/FETCH 標準化演進。ROW_NUMBER() 窗口函數通用寫法(MySQL 8.0+)。