首页 >数据库 >mysql教程 >在 MySQL 查询中使用'LIMIT”时如何获取总行数?

在 MySQL 查询中使用'LIMIT”时如何获取总行数?

DDD
DDD原创
2024-11-13 05:50:02698浏览

How Do You Get the Total Row Count When Using `LIMIT` in MySQL Queries?

尽管在 MySQL 查询中存在 LIMIT,仍查找行数

使用 LIMIT 子句的 MySQL 查询允许您限制返回的行数。但是,如果您还需要检索与查询匹配的总行数怎么办?

使用 LIMIT 子句和行计数的查询

考虑以下查询,该查询检索使用 JOIN 的两个表中的行子集:

SELECT A.ID, A.NAME, B.ID, B.NAME
FROM table1 A
JOIN table2 B ON ( A.ID = B.TABLE1_ID )
WHERE
  cond1, cond2, ..., condN
LIMIT 10

此查询将返回满足以下条件的前 10 行指定条件。

使用 SQL_CALC_FOUND_ROWS 的解决方案

要获取总行数,可以将 SQL_CALC_FOUND_ROWS 函数与 LIMIT 子句结合使用:

SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME
FROM table1 A
JOIN table2 B ON ( A.ID = B.TABLE1_ID )
WHERE
  cond1, cond2, ..., condN
LIMIT 10

SELECT FOUND_ROWS();

SQL_CALC_FOUND_ROWS 函数设置内部行计数变量在使用 LIMIT 子句执行查询之前。然后 FOUND_ROWS() 函数检索该变量的值,该值表示在没有 LIMIT 的情况下返回的总行数。

通过使用此技术,您可以获得行的有限子集和无需额外查询的总行数。

以上是在 MySQL 查询中使用'LIMIT”时如何获取总行数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn