首頁 > 資料庫 > mysql教程 > 如何使用 OFFSET 和 LIMIT 有效率地取得分頁 MySQL 查詢的結果總數?

如何使用 OFFSET 和 LIMIT 有效率地取得分頁 MySQL 查詢的結果總數?

Patricia Arquette
發布: 2024-12-01 00:36:12
原創
758 人瀏覽過

How Can I Efficiently Get the Total Count of Results for Paginated MySQL Queries Using OFFSET and LIMIT?

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

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