count(*)和found_rows()的区别
时间: 2024-03-14 21:46:22 浏览: 97
mysql SELECT FOUND_ROWS()与COUNT()用法区别1
`COUNT(*)` 和 `FOUND_ROWS()` 都是用于计算行数的函数,但是有一些区别。
`COUNT(*)` 是一个聚合函数,用于计算指定列或行中的行数,它返回的是一个整数值。当使用`COUNT(*)`函数时,它会返回满足指定条件的行数,例如:
```
SELECT COUNT(*) FROM table_name WHERE condition;
```
`FOUND_ROWS()` 函数返回最近一次查询中返回的行数,它通常在使用`LIMIT`关键字限制结果集时使用。例如:
```
SELECT SQL_CALC_FOUND_ROWS * FROM table_name WHERE condition LIMIT 10;
SELECT FOUND_ROWS();
```
在上面的例子中,第一条语句使用了`SQL_CALC_FOUND_ROWS`关键字来计算满足条件的总行数,第二条语句使用`FOUND_ROWS()`函数返回这个总行数。
需要注意的是,`FOUND_ROWS()` 函数只能在使用`LIMIT`关键字限制结果集时才有效,如果没有使用`LIMIT`,它将返回`SELECT`语句查询到的所有行数。
因此,`COUNT(*)` 和 `FOUND_ROWS()` 的区别在于:`COUNT(*)` 返回满足条件的行数,而 `FOUND_ROWS()` 返回最近一次查询中返回的行数(包括未被`LIMIT`限制的行数)。
阅读全文