首页 > 数据库 > mysql教程 > 如何使用 OFFSET 和 LIMIT 高效获取分页 MySQL 查询的结果总数?

如何使用 OFFSET 和 LIMIT 高效获取分页 MySQL 查询的结果总数?

Patricia Arquette
发布: 2024-12-01 00:36:12
原创
757 人浏览过

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 配合使用,才能准确计算行数,避免计数错误。

以上是如何使用 OFFSET 和 LIMIT 高效获取分页 MySQL 查询的结果总数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板