天天看點

Mysql 取前幾條記錄詳解(limit、分頁、行号)1 概述2 示例3 擴充

文章目錄

  • 1 概述
  • 2 示例
    • 2.1 基礎
    • 2.2 分頁
  • 3 擴充
    • 3.1 取最後 10 條記錄
    • 3.2 顯示行号

1 概述

1. 目的:'限制要取出來的 記錄行數'

2. 文法
   (1) limit n          : 前 n 條記錄           -- 等同于 0, n
   (2) limit n, m       : 從 n 之後,取 m 條記錄 -- 請注意,不含 n 哦,以下同理
   (3) limit n offset m : 從 m 之後,取 n 條記錄 -- 等同于 m, n
           

2 示例

2.1 基礎

select * from table limit 3;    -- 前三條記錄		1, 2, 3

select * from table limit 1, 3; -- 記錄行2-4		2, 3, 4
           

2.2 分頁

結論 - 格式

select * 
  from table 
 limit (pagNum- 1) * pageSize, pageSize;

-- pagNum	  頁面數,從 1 開始
-- pageSize	  每頁展示的記錄條數
           

推理示範:

-- 檢索 1 - 10  行記錄
select * from table limit 0, 10   --> select * from table limit (1 - 1) * 10, 10

-- 檢索 11 - 20 行記錄
select * from table limit 10, 10  --> select * from table limit (2 - 1) * 10, 10

-- 檢索 21 - 30 行記錄
select * from table limit 20, 10  --> select * from table limit (3 - 1) * 10, 10
           

3 擴充

3.1 取最後 10 條記錄

select * 
  from table
 order by xx desc  -- 增加一個 倒序 即可
  limit 10;
           

3.2 顯示行号

-- 說明:mysql 沒有 類似 Oracle 中的 rownum
--      但可通過自定義變量來實作
select @rownum := @rownum + 1 as rownum,
	   t.* 
  from table t,
	   ( select @rownum := 0 ) r -- 重置 rowno 值
;
           

繼續閱讀