如何有效地決定分頁 SQL 查詢中的總行數?

Linda Hamilton
發布: 2024-10-30 10:44:28
原創
709 人瀏覽過

How to Efficiently Determine Total Row Count in Paginated SQL Queries?

透過分頁確定總行數

在 SQL 查詢中實現分頁時,準確地確定總行數至關重要。執行查詢兩次(一次不使用 LIMIT 子句來計算行數,一次使用 LIMIT 子句來擷取分頁資料)可能不是最佳選擇,特別是對於複雜查詢。

幸運的是,MySQL 提供了一個優雅的解決方案: SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 構造。透過將 SQL_CALC_FOUND_ROWS 新增至主查詢,即使存在 LIMIT 子句,MySQL 也會計算總行數。使用 FOUND_ROWS() 的後續查詢將檢索此計數。

以下是一個範例:

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();
登入後複製

此方法比執行查詢兩次更快,並提供準確的總計數。

MySQL 8 中已棄用的函數

在 MySQL 8.0.17 中,SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 已棄用。對於較新的 MySQL 版本,建議改用 COUNT。

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

透過利用這些技術,開發人員可以精確計算分頁 SQL 查詢中的行數,而無需多個查詢的開銷。

以上是如何有效地決定分頁 SQL 查詢中的總行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!