确定带偏移量和限制的分页 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中文网其他相关文章!