在 MySQL 中使用 SELECT 和 LIMIT 计算行数
在 MySQL 中,LIMIT 子句可用于限制返回的行数询问。但是,使用 LIMIT 时,获取表中满足查询条件的总行数可能会很困难。
考虑以下查询,该查询从两个表之间的联接检索前 10 行,table1和table2,基于某些条件(cond1,cond2,...,condN):
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
为了检索满足这些条件的总行数而不发出另一个不带LIMIT的查询,MySQL提供了SQL_CALC_FOUND_ROWS 关键字。通过将 SQL_CALC_FOUND_ROWS 合并到初始查询中,MySQL 在应用 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();
通过组合这两个查询,您可以限制返回的行数并检索总行数,而不需要额外的查询。
以上是如何在 MySQL 中使用 LIMIT 来计算总行数?的详细内容。更多信息请关注PHP中文网其他相关文章!