MySQL中的ROW_NUMBER()是什么?

MySQL中的ROW_NUMBER()是什么?

Row_NUMBER()是从MySQL 8.0版开始包含的一种窗口函数。它可以用来为行分配一个序号。为了理解,可以使用CREATE命令创建一个表,如下所示:

阅读更多:MySQL 教程

创建一个表

mysql> CREATE table rowNumberDemo
-> (
-> FirstName varchar(100)
-> );
Query OK, 0 rows affected (0.92 sec)

插入记录

mysql> INSERT into rowNumberDemo values('john');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into rowNumberDemo values('john');
Query OK, 1 row affected (0.29 sec)

mysql> INSERT into rowNumberDemo values('Bob');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into rowNumberDemo values('Smith');
Query OK, 1 row affected (0.17 sec)

我们可以使用SELECT语句显示所有记录:

mysql> SELECT * from rowNumberDemo;

以下是输出结果:

+-----------+
| FirstName |
+-----------+
| john      |
| john      |
| Bob       |
| Smith     |
+-----------+
4 rows in set (0.00 sec)

现在,我们可以使用row_number()为每条记录分配递增值:

mysql> SELECT row_number() over ( order by firstName) RowNumberSqeuence,FirstName from rowNumberDemo
-> order by FirstName;

以下是输出结果:

+-------------------+-----------+
| RowNumberSqeuence | FirstName |
+-------------------+-----------+
| 1                 | Bob       |
| 2                 | john      |
| 3                 | john      |
| 4                 | Smith     |
+-------------------+-----------+
4 rows in set (0.00 sec)

观察输出结果,我们使用row_number()为每条记录分配了一个编号。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程