首頁  >  文章  >  後端開發  >  如何在分頁時使用偏移量和限制來確定 MySQL 中的總結果計數?

如何在分頁時使用偏移量和限制來確定 MySQL 中的總結果計數?

Barbara Streisand
Barbara Streisand原創
2024-10-23 12:12:01488瀏覽

How to Determine Total Result Count in MySQL with Offset and Limit while Paginating?

使用偏移量和限制確定MySQL 中的總結果計數

分頁是Web 開發的一個重要方面,可以高效顯示大型資料集跨多個頁面。在 MySQL 查詢中使用偏移量和限制時,必須確定結果總數以計算所需的分頁。

一種方法是執行查詢兩次:一次使用限制來檢索要顯示的結果,再次沒有限制計算總行數。但是,這種方法效率低下,並且可能會增加資料庫資源的負擔。

更有效的解決方案是使用 SQL_CALC_FOUND_ROWS 關鍵字。此關鍵字通知 MySQL 計算在沒有限制的情況下傳回的總行數。然後可以使用 FOUND_ROWS() 函數檢索總計數。

例如,考慮以下查詢:

SELECT * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;

要確定總行數,請在開頭添加SQL_CALC_FOUND_ROWS查詢的內容:

SELECT SQL_CALC_FOUND_ROWS * FROM table_name ORDER BY id LIMIT 10 OFFSET 20;

執行此查詢後,使用FOUND_ROWS() 檢索總計數:

$total_results = $this->db->query('SELECT FOUND_ROWS()')->row()->{'FOUND_ROWS()'};

此方法提供了一種決定結果總數的有效方法無需單獨查詢。它節省了運算資源並確保最佳的資料庫效能,尤其是對於大型資料集。

以上是如何在分頁時使用偏移量和限制來確定 MySQL 中的總結果計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn