MySQL 中的 ROW_NUMBER() 是什么?

mysqlmysqli database更新于 2024/1/24 16:14:00

MySQL 8.0 版包含 Row_NUMBER()。它是一种窗口函数。可用于为行分配序列号。要理解,请借助 CREATE pcommand 创建一个表 −

创建表

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


相关文章