首頁  >  文章  >  資料庫  >  MySQL中怎麼實作分頁操作

MySQL中怎麼實作分頁操作

WBOY
WBOY轉載
2023-05-30 09:10:225405瀏覽

    一、 背景

    什麼是分頁,就是查詢時候資料量太大,一次回傳所有查詢結果既耗費網路資源、又降低了查詢效率,用戶也不可能一下子看完成千上萬條資料。所以分頁的技術就應運而生。分頁可以只顯示指定數量的資料。

    二、實作規則

    2.1 關鍵字 LIMIT

    在MySQL中,使用關鍵字 LIMIT 實作分頁操作。格式為:

    LIMIT 位置偏移量, 每頁條目數;

    #當位置偏移量等於0 時,該語句可簡寫為:

    LIMIT 每頁條目數;

    ##【範例1】查詢員工表

    employees 中的員工的employee_id last_namesalarydepartment_id 資訊。並按每頁 20 條顯示。

    # 写法一
    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 0, 20;
    
    # 写法二
    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 20;

    其中,

    LIMIT 後面第一個參數是初始偏移量,也就是從第幾個資料開始顯示;第二個參數是每頁要顯示多少資料。

    顯示了員工編號 100~119 的員工。

    【範例2】繼續上面的範例1,上面的程式碼只是顯示了第一頁的數據,如果現在使用者想要顯示第2頁的數據,該怎麼操作呢?可以使用

    LIMIT 後第一個參數是初始偏移量來讓資料庫從第21條資料(因為第1條資料的編號為0 ,所以第20條資料的編號就是20) 開始顯示。如下代碼所示:

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 20, 20;

    顯示了員工編號 120~139 的員工。

    【總結】總結一個分頁的公式,設每頁顯示的資料個數為pageSize,目前是第pageNo 頁,那麼就有如下

    LIMIT 查詢公式:

    LIMIT (pageNo - 1) * pageSize, pageSize;

    2.2 查詢資料庫表的第x x x 筆記錄

    【範例1】查詢員工表

    employees 中的第32、33條員工的資料。

    SELECT employee_id, last_name, salary
    FROM employees
    LIMIT 31, 2;

    2.3 WHERE…ORDER BY…LIMIT… 的宣告順序(非執行順序)

    正確的宣告順序如下程式碼所示:

    SELECT employee_id, last_name, salary
    FROM employees
    WHERE salary >= 5000
    ORDER BY salary DESC
    LIMIT 0, 10;

    三、拓展

    MySQL8.0中對於分頁新增了一個新特性,對

    LIMIT 後增加了偏移量OFFSET :

    LIMIT 每頁條目數OFFSET 初始偏移量;

    對比原有的格式,無非就是把初始偏移量和每頁條目數位置調轉一下,然後把逗號去掉即可。

    LIMIT 可以使用在 MySQL、PostgreSQL、MariaDB 和 SQLite 中。 LIMIT 不可以使用在 Oracle、DB2、SQL Server 中!

    以上是MySQL中怎麼實作分頁操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除