MariaDB FOUND_ROWS() 函数的基础用法与实例
MariaDB FOUND_ROWS()
函数是一个信息函数,它用于返回最近一次成功的 SELECT
语句找到的行数,即使使用了 LIMIT
子句也不影响。
FOUND_ROWS()
函数是 MariaDB 中的一个信息函数,它用于返回最近一次成功的 SELECT
语句找到的行数,即使使用了 LIMIT
子句也不影响。如果前一个 SELECT
语句使用了 LIMIT
子句,那么必须同时使用 SQL_CALC_FOUND_ROWS
修饰符,才能让 FOUND_ROWS()
函数返回正确的结果。
语法
FOUND_ROWS()
函数的语法如下:
FOUND_ROWS()
参数
FOUND_ROWS()
函数不需要任何参数。
返回值
FOUND_ROWS()
函数返回最近一次成功的 SELECT
语句找到的行数。如果需要获取一个查询的总行数,需要在语句中包含 SQL_CALC_FOUND_ROWS
修饰符。
实例
下面是一些使用 FOUND_ROWS()
函数的实例。
在不使用 LIMIT
子句的情况下获取查询的总行数
假设我们有一个名为 employees
的表,它包含以下数据:
id | name | department | salary |
---|---|---|---|
1 | Alice | Sales | 5000 |
2 | Bob | Marketing | 6000 |
3 | Carol | IT | 7000 |
4 | David | HR | 8000 |
5 | Eve | Finance | 9000 |
我们可以使用 FOUND_ROWS()
函数在不使用 LIMIT
子句的情况下获取查询的总行数,例如:
SELECT SQL_CALC_FOUND_ROWS * FROM employees;
输出:
id | name | department | salary |
---|---|---|---|
1 | Alice | Sales | 5000 |
2 | Bob | Marketing | 6000 |
3 | Carol | IT | 7000 |
4 | David | HR | 8000 |
5 | Eve | Finance | 9000 |
SELECT FOUND_ROWS();
输出:
5
说明:
- 这个实例中,我们在
SELECT
语句中使用了SQL_CALC_FOUND_ROWS
修饰符,然后执行了FOUND_ROWS()
函数,返回了查询的总行数,即 5。 - 注意,即使没有使用
LIMIT
子句,也需要使用SQL_CALC_FOUND_ROWS
修饰符,否则FOUND_ROWS()
函数将返回 0。
在使用 LIMIT
子句的情况下获取查询的总行数
我们可以使用 FOUND_ROWS()
函数在使用 LIMIT
子句的情况下获取查询的总行数,例如:
SELECT SQL_CALC_FOUND_ROWS * FROM employees LIMIT 3;
输出:
id | name | department | salary |
---|---|---|---|
1 | Alice | Sales | 5000 |
2 | Bob | Marketing | 6000 |
3 | Carol | IT | 7000 |
SELECT FOUND_ROWS();
输出:
5
说明:
- 这个实例中,我们在
SELECT
语句中使用了SQL_CALC_FOUND_ROWS
修饰符和LIMIT
子句,然后执行了FOUND_ROWS()
函数,返回了查询的总行数,即 5。 - 注意,即使使用了
LIMIT
子句,也不影响FOUND_ROWS()
函数的返回值,它仍然返回没有使用LIMIT
子句时的行数。
在使用 WHERE
子句的情况下获取查询的总行数
我们可以使用 FOUND_ROWS()
函数在使用 WHERE
子句的情况下获取查询的总行数,例如:
SELECT SQL_CALC_FOUND_ROWS * FROM employees WHERE salary > 6000;
输出:
id | name | department | salary |
---|---|---|---|
3 | Carol | IT | 7000 |
4 | David | HR | 8000 |
5 | Eve | Finance | 9000 |
SELECT FOUND_ROWS();
输出:
3
说明:
- 这个实例中,我们在
SELECT
语句中使用了SQL_CALC_FOUND_ROWS
修饰符和WHERE
子句,然后执行了FOUND_ROWS()
函数,返回了查询的总行数,即 3。 - 注意,
FOUND_ROWS()
函数返回的是符合WHERE
条件的行数,而不是表中的总行数。
相关函数
除了 FOUND_ROWS()
函数外,MariaDB 还提供了一些其他的信息函数,例如:
ROW_COUNT()
函数,它用于返回最近一次成功的INSERT
,UPDATE
,DELETE
或REPLACE
语句影响的行数。LAST_INSERT_ID()
函数,它用于返回最近一次成功的INSERT
或REPLACE
语句生成的自增主键值。VERSION()
函数,它用于返回 MariaDB 服务器的版本信息。
结论
FOUND_ROWS()
函数是一个有用的信息函数,它用于返回最近一次成功的 SELECT
语句找到的行数,即使使用了 LIMIT
子句也不影响。如果前一个 SELECT
语句使用了 LIMIT
子句,那么必须同时使用 SQL_CALC_FOUND_ROWS
修饰符,才能让 FOUND_ROWS()
函数返回正确的结果。它可以与 WHERE
子句一起使用,也可以与其他的信息函数结合使用。