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() 函数,它用于返回最近一次成功的 INSERTUPDATEDELETEREPLACE 语句影响的行数。
  • LAST_INSERT_ID() 函数,它用于返回最近一次成功的 INSERTREPLACE 语句生成的自增主键值。
  • VERSION() 函数,它用于返回 MariaDB 服务器的版本信息。

结论

FOUND_ROWS() 函数是一个有用的信息函数,它用于返回最近一次成功的 SELECT 语句找到的行数,即使使用了 LIMIT 子句也不影响。如果前一个 SELECT 语句使用了 LIMIT 子句,那么必须同时使用 SQL_CALC_FOUND_ROWS 修饰符,才能让 FOUND_ROWS() 函数返回正确的结果。它可以与 WHERE 子句一起使用,也可以与其他的信息函数结合使用。