首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL LIMIT 分頁查詢語法詳解:m、n 參數含義與實戰示例

     編輯:MySQL 資料庫相關知識

LIMIT m, n 是 MySQL 分頁查詢的核心語法,但參數含義常被誤解。本文用直觀示例釐清 m、n 的具體語義,並補充常見分頁優化提示。

語法定義

SELECT * FROM table LIMIT m, n
  • m(offset):起始記錄的零基索引,即跳過前 m 條記錄。m=0 表示從第一條開始。
  • n(count):需返回的最大記錄數。

等價寫法:LIMIT n OFFSET m(SQL:2008 標準,可讀性更強)。

實戰示例:10 條記錄表

mysql> SELECT * FROM total;
+----+-----------------+--------+------------+
| id | name            | number | mydate     |
+----+-----------------+--------+------------+
|  1 | 河南出版社    |   1000 | 2008-03-24 |
|  2 | 河南出版社    |   1200 | 2009-04-24 |
|  3 | 河南出版社    |   1100 | 2010-04-24 |
|  4 | 河南出版社    |   1400 | 2011-04-24 |
|  5 | 河南出版社    |   1350 | 2012-04-24 |
|  6 | 北京出版社    |   2000 | 2008-03-24 |
|  7 | 北京出版社    |   2020 | 2009-04-24 |
|  8 | 北京出版社    |   2050 | 2010-04-24 |
|  9 | 北京出版社    |   1980 | 2011-04-24 |
| 10 | 北京出版社    |   2100 | 2012-04-24 |
+----+-----------------+--------+------------+

查詢:LIMIT 2, 3

mysql> SELECT * FROM total LIMIT 2, 3;
+----+-----------------+--------+------------+
| id | name            | number | mydate     |
+----+-----------------+--------+------------+
|  3 | 河南出版社    |   1100 | 2010-04-24 |
|  4 | 河南出版社    |   1400 | 2011-04-24 |
|  5 | 河南出版社    |   1350 | 2012-04-24 |
+----+-----------------+--------+------------+

解析:跳過前 2 條(id 1、2),取後續 3 條(id 3、4、5)。

分頁公式與常見坑

頁碼 (page, 1-based)每頁大小 (size)LIMIT 寫法
110LIMIT 0, 10 或 LIMIT 10
210LIMIT 10, 10
ksizeLIMIT (k-1)*size, size

效能陷阱: 深分頁(如 LIMIT 1000000, 10)會掃描並丟棄前 100 萬行,極慢。
優化方案:

  • 延遲關聯:SELECT * FROM t INNER JOIN (SELECT id FROM t LIMIT 1000000, 10) tmp USING(id)
  • 游標分頁:WHERE id > last_max_id ORDER BY id LIMIT 10(需 ID 連續遞增)
  • 覆蓋索引:子查詢僅掃描索引列,大幅減少 I/O。

兼容性提示

  • MySQL / MariaDB / SQLite / PostgreSQL:支援 LIMIT m, n 與 LIMIT n OFFSET m。
  • Oracle 12c+:OFFSET m ROWS FETCH NEXT n ROWS ONLY。
  • SQL Server 2012+:ORDER BY col OFFSET m ROWS FETCH NEXT n ROWS ONLY。

掌握 LIMIT 語義與優化策略,是編寫高效分頁查詢的基礎功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved