使用偏移量和限制確定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中文網其他相關文章!