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()为每条记录分配了一个编号。
极客教程