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()
是一个内置函数,它可返回当前查询中的每一行的行编号。