python分頁查詢 分頁查詢

2021-10-12 11:53:18 字數 1843 閱讀 8609

分頁

使用select查詢時,如果結果集資料量很大,比如幾萬行資料,放在乙個頁面顯示的話資料量太大,不如分頁顯示,每次顯示100條。

要實現分頁功能,實際上就是從結果集中顯示第1~100條記錄作為第1頁,顯示第101~200條記錄作為第2頁,以此類推。

因此,分頁實際上就是從結果集中「擷取」出第m~n條記錄。這個查詢可以通過limit offset 子句實現。我們先把所有學生按照成績從高到低進行排序:

-- 按score從高到低

select id, name, gender, score from students order by score desc;

現在,我們把結果集分頁,每頁3條記錄。要獲取第1頁的記錄,可以使用limit 3 offset 0:

-- 查詢第1頁

select id, name, gender, score

from students

order by score desc

limit 3 offset 0;

上述查詢limit 3 offset 0表示,對結果集從0號記錄開始,最多取3條。注意sql記錄集的索引從0開始。

如果要查詢第2頁,那麼我們只需要「跳過」頭3條記錄,也就是對結果集從3號記錄開始查詢,把offset設定為3:

-- 查詢第2頁

select id, name, gender, score

from students

order by score desc

limit 3 offset 3;

類似的,查詢第3頁的時候,offset應該設定為6:

-- 查詢第3頁

select id, name, gender, score

from students

order by score desc

limit 3 offset 6;

查詢第4頁的時候,offset應該設定為9:

-- 查詢第4頁

select id, name, gender, score

from students

order by score desc

limit 3 offset 9;

由於第4頁只有1條記錄,因此最終結果集按實際數量1顯示。limit 3表示的意思是「最多3條記錄」。

可見,分頁查詢的關鍵在於,首先要確定每頁需要顯示的結果數量pagesize(這裡是3),然後根據當前頁的索引pageindex(從1開始),確定limit和offset應該設定的值:

limit總是設定為pagesize;

offset計算公式為pagesize * (pageindex - 1)。

這樣就能正確查詢出第n頁的記錄集。

如果原本記錄集一共就10條記錄,但我們把offset設定為20,會得到什麼結果呢?

-- offset設定為20

select id, name, gender, score

from students

order by score desc

limit 3 offset 20;

offset超過了查詢的最大數量並不會報錯,而是得到乙個空的結果集。

注意offset是可選的,如果只寫limit 15,那麼相當於limit 15 offset 0。

在mysql中,limit 15 offset 30還可以簡寫成limit 30, 15。

使用limit offset 分頁時,隨著n越來越大,查詢效率也會越來越低。

小結使用limit offset 可以對結果集進行分頁,每次查詢返回結果集的一部分;

分頁查詢需要先確定每頁的數量和當前頁數,然後確定limit和offset的值。

思考在分頁查詢之前,如何計算一共有幾頁?

Mysql 分頁查詢 快照 Mysql分頁查詢優化

select from orders history where type 8 limit 1000,10 該條語句將會從表 orders history 中查詢offset 1000開始之後的10條資料,也就是第1001條到第1010條資料 1001 id 1010 資料表中的記錄預設使用主鍵 一...

mysql 分頁查詢 失效 mysql分頁查詢

比如每頁10條,分頁查詢 語法 select from table limit offset,rows offset指定要返回的第一行的偏移量,rows第二個指定返回行的最大數目。初始行的偏移量是0 不是1 select from table limit 0,10 第一頁 select from t...

Java分頁查詢(真分頁)

在開發過程中,我們經常會從資料庫中查詢資料,然後在客戶端顯示出來。當資料少時,可以在乙個頁面顯示。當我們查詢幾百條以上資料,直接顯示在乙個頁面上,不僅瀏覽不方便,查詢效率也會受到影響,這是,我們就可以使用分頁查詢來解決這個問題。分析上面這個頁面,想要實現分頁,我們在頁面中需要顯示的資料有 本頁的資料...