首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中使用分頁高效檢索總行數?

如何在 MySQL 中使用分頁高效檢索總行數?

DDD
發布: 2024-10-27 06:42:02
原創
582 人瀏覽過

 How to Efficiently Retrieve Total Row Count with Pagination in MySQL?

取得 LIMIT 的總行數

使用分頁執行 SQL 查詢時,通常需要取得總行數。通常,這需要執行查詢兩次,一次沒有 LIMIT 子句來決定總計數。

但是,有一種更有效的方法可以實現此目的,而無需訴諸多個查詢。

SQL_CALC_FOUND_ROWS

從 MySQL 4.0.0 開始,可以使用 SQL_CALC_FOUND_ROWS 選項。它指示 MySQL 即使存在 LIMIT 子句也計算總行數。

要使用此選項,只需將其新增在主查詢中的 SELECT 語句之後即可。然後,使用 FOUND_ROWS() 函數執行單獨的查詢來檢索行計數。

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;

SELECT FOUND_ROWS();
登入後複製

注意: 雖然 SQL_CALC_FOUND_ROWS 需要兩個查詢,但通常比執行兩次主查詢要快。但是,從 MySQL 8.0.17 開始,此選項已被棄用,並將在未來版本中刪除。

替代方案:COUNT()

作為替代方案,您可以在單獨的查詢中使用 COUNT() 函數來取得總行數。

SELECT COUNT(*) FROM tbl_name WHERE id > 100;
登入後複製

此方法也需要兩個查詢,但這是一種較新且首選的方法。

以上是如何在 MySQL 中使用分頁高效檢索總行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板