// 取前 10 筆
$User->where('status=1')->limit(10)->select();
// 分頁:跳過 10 筆取 25 筆 (第 2 頁,每頁 25)
$User->limit(10, 25)->select();
// 或 3.1+ 陣列寫法
$User->limit([10, 25])->select();
// 僅更新前 3 筆符合條件的記錄
$User->where('score=100')->limit(3)->save(['level' => 'A']);
// 僅刪除前 5 筆
$User->where('status=0')->limit(5)->delete();
$page = max(1, (int)($_GET['p'] ?? 1)); $perPage = 20; $offset = ($page - 1) * $perPage; $list = $Article->limit($offset, $perPage)->select(); $total = $Article->count(); $pages = ceil($total / $perPage);
OFFSET 1000000) 會掃描大量行再丟棄,效能急劇下降WHERE id > last_seen_id ORDER BY id LIMIT 20 (游標分頁)SQL_CALC_FOUND_ROWS 避免二次查詢limit() 會自動轉換為各資料庫方言:
| 資料庫 | 轉換語法 |
|---|---|
| MySQL | LIMIT offset, count |
| PostgreSQL | LIMIT count OFFSET offset |
| SQL Server | OFFSET offset ROWS FETCH NEXT count ROWS ONLY |
| Oracle | ROWNUM 包裝查詢 |