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