SQL Server 有 TOP、Oracle 有 ROWNUM,MySQL 則靠 LIMIT 完成同樣功能。語法簡潔且功能強大,支援「前 N 筆」與「跳過 M 筆再取 N 筆」兩種模式,是分頁查詢的核心工具。
| 寫法 | 含義 | 等價寫法 |
|---|---|---|
LIMIT 10 | 取前 10 筆 | LIMIT 0, 10 |
LIMIT 5, 10 | 跳過前 5 筆,取接著的 10 筆 | 第 6–15 筆 |
ORDER BY-- 依 id 遞減,取最新 10 筆
SELECT * FROM articles ORDER BY id DESC LIMIT 10;
-- 依 id 遞增,跳過前 5 筆取 10 筆(第 2 頁,每頁 10 筆)
SELECT * FROM articles ORDER BY id ASC LIMIT 5, 10;
-- 取得 cat_id 最大的一筆(最新分類)
SELECT cat_id FROM shop_goods_type ORDER BY cat_id DESC LIMIT 1;
LIMIT 配合覆蓋索引可避免回表,大幅加速。LIMIT 1000000, 10)會掃描大量行再丟棄,建議改用「游標分頁」或「延遲關聯」優化。LIMIT ... OFFSET ... 標準語法,語意更清晰。LIMIT 是 MySQL 分頁與取前 N 筆的標準做法,語法靈活、效能優異。掌握 LIMIT n、LIMIT offset, n 兩種形式,並搭配 ORDER BY 穩定排序,即可應對絕大多數分頁需求。