溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL中怎么實現分頁操作

發(fā)布時間:2022-08-26 14:01:16 來源:億速云 閱讀:146 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“MySQL中怎么實現分頁操作”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“MySQL中怎么實現分頁操作”文章能幫助大家解決問題。

    一、 背景

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

    二、 實現規(guī)則

    2.1 關鍵字 LIMIT

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

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

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

    LIMIT 每頁條目數;

    【例子1】查詢員工表 employees 中的員工的 employee_id 、last_name 、salarydepartment_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】繼續(xù)上面的例子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… 的聲明順序 (非執(zhí)行順序)

    正確的聲明順序如下代碼所示:

    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中怎么實現分頁操作”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節(jié)

    免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI