尽管在 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中文网其他相关文章!