確定帶偏移量和限制的分頁MySQL 查詢的總結果
在PHP/MySQL 中實現分頁時,確定結果總數為對於計算頁數至關重要。不要執行查詢兩次,而是考慮使用 SQL_CALC_FOUND_ROWS。
範例:
SELECT SQL_CALC_FOUND_ROWS * FROM directory_listings WHERE category_id = ? LIMIT ? OFFSET ?
此查詢擷取所需的結果數,同時也計算符合條件的總數行。
// Execute the query with pagination parameters $results = $db->query($query, [ 'category_id' => $categoryId, 'limit' => $limit, 'offset' => $offset ]); // Retrieve the found row count $foundRows = $db->query("SELECT FOUND_ROWS() AS num_rows")->row(); // Calculate total pages $totalPages = ceil($foundRows->num_rows / $limit);
優點:
注意:
SQL_CALC_FOUND_ROWS 必須與LIMIT 搭配使用,才能與LIMIT 搭配使用準確計算行數,避免計數錯誤。
以上是如何使用 OFFSET 和 LIMIT 有效率地取得分頁 MySQL 查詢的結果總數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!