如何有效地确定分页 SQL 查询中的总行数?

Linda Hamilton
发布: 2024-10-30 10:44:28
原创
709 人浏览过

How to Efficiently Determine Total Row Count in Paginated SQL Queries?

通过分页确定总行数

在 SQL 查询中实现分页时,准确确定总行数至关重要。运行查询两次(一次不使用 LIMIT 子句来计算行数,一次使用 LIMIT 子句来检索分页数据)可能不是最佳选择,特别是对于复杂查询。

幸运的是,MySQL 提供了一个优雅的解决方案: SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 构造。通过将 SQL_CALC_FOUND_ROWS 添加到主查询,即使存在 LIMIT 子句,MySQL 也会计算总行数。使用 FOUND_ROWS() 的后续查询将检索此计数。

下面是一个示例:

SELECT SQL_CALC_FOUND_ROWS name, email FROM users WHERE name LIKE 'a%' LIMIT 10;
SELECT FOUND_ROWS();
登录后复制

此方法比运行查询两次更快,并提供准确的总计数。

MySQL 8 中已弃用的函数

在 MySQL 8.0.17 中,SQL_CALC_FOUND_ROWS 和 FOUND_ROWS() 已弃用。对于较新的 MySQL 版本,建议改用 COUNT。

SELECT * FROM tbl_name WHERE id > 100 LIMIT 10;
SELECT COUNT(*) WHERE id > 100;
登录后复制

通过利用这些技术,开发人员可以准确计算分页 SQL 查询中的行数,而无需多个查询的开销。

以上是如何有效地确定分页 SQL 查询中的总行数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!