MariaDB ROWNUM() 函数使用指南
在 MariaDB 中,ROWNUM() 是一个内置函数,它可返回当前查询中的每一行的行编号。
MariaDB ROWNUM() 函数与 Oracle 中的 ROWNUM 伪列很很像。 在 Oracle 模式下,您可以省略括号。就和在 ORACLE 中一样。
在 ORACLE 中,您可以使用 ROWNUM 实现 MariaDB 中的 LIMIT。
MariaDB ROWNUM() 语法
这里是 MariaDB ROWNUM() 函数的语法:
ROW_COUNT()
参数
MariaDB ROWNUM() 函数不需要任何参数。
返回值
MariaDB ROWNUM() 函数返回当前查询中的每一行的行编号。
MariaDB ROWNUM() 示例
下面的示例使用了来自 Sakila 示例数据库的 film 表。
要从 film 表中查询前 5 行,请使用以下语句:
SELECT ROWNUM(), film_id, title
FROM film
WHERE ROWNUM() <= 5;
输出:
+----------+---------+------------------+
| ROWNUM() | film_id | title            |
+----------+---------+------------------+
|        1 |       1 | ACADEMY DINOSAUR |
|        2 |       2 | ACE GOLDFINGER   |
|        3 |       3 | ADAPTATION HOLES |
|        4 |       4 | AFFAIR PREJUDICE |
|        5 |       5 | AFRICAN EGG      |
+----------+---------+------------------+这等同于以下带有 LIMIT 子句的语句:
SELECT ROWNUM(), film_id, title
FROM film
LIMIT 5;
要从 film 表中查询第 6 行到第 10 行,请使用以下语句:
SELECT * FROM (
  SELECT ROWNUM() row_num, film_id, title
  FROM film
) t
WHERE row_num >= 6 AND row_num <=10;
输出:
+---------+---------+------------------+
| row_num | film_id | title            |
+---------+---------+------------------+
|       6 |       6 | AGENT TRUMAN     |
|       7 |       7 | AIRPLANE SIERRA  |
|       8 |       8 | AIRPORT POLLOCK  |
|       9 |       9 | ALABAMA DEVIL    |
|      10 |      10 | ALADDIN CALENDAR |
+---------+---------+------------------+或者你可以使用以下语句:
SELECT * FROM(
  SELECT ROWNUM() row_num, film_id, title
  FROM film
  WHERE ROWNUM() <= 10
  ) t
WHERE row_num >= 6;
这等同于以下带有 LIMIT 子句的语句:
SELECT ROWNUM(), film_id, title
FROM film
LIMIT 5, 5;
注意,如果您使用以下语句则返回空的结果集:
SELECT ROWNUM(), film_id, title
FROM film
WHERE ROWNUM() > 5;
或者
SELECT ROWNUM(), film_id, title
FROM film
WHERE ROWNUM() >= 6 AND ROWNUM() <= 10;
结论
在 MariaDB 中,ROWNUM() 是一个内置函数,它可返回当前查询中的每一行的行编号。