萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 沒有 TOP?用 LIMIT 輕鬆實現「取前 N 筆」與分頁查詢

背景

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)會掃描大量行再丟棄,建議改用「游標分頁」或「延遲關聯」優化。
  • MySQL 8.0 支援 LIMIT ... OFFSET ... 標準語法,語意更清晰。

總結

LIMIT 是 MySQL 分頁與取前 N 筆的標準做法,語法靈活、效能優異。掌握 LIMIT n、LIMIT offset, n 兩種形式,並搭配 ORDER BY 穩定排序,即可應對絕大多數分頁需求。

copyright © 萬盛學電腦網 all rights reserved