Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

ROW_NUMBER() trong MySQL là gì?

Hàm ROW_NUMBER() được hỗ trợ từ MySQL 8.0. Đây là một loại window function (hàm cửa sổ) dùng để gán số thứ tự cho các dòng.

Tạo bảng

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

Chèn dữ liệu

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)

Hiển thị dữ liệu

mysql> SELECT * FROM rowNumberDemo;

Kết quả:

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

Sử dụng ROW_NUMBER() để gán số thứ tự tăng dần:

mysql> SELECT ROW_NUMBER() OVER (ORDER BY FirstName) AS RowNumberSequence, FirstName
    -> FROM rowNumberDemo ORDER BY FirstName;

Kết quả:

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

Mỗi bản ghi đã được gán một số thứ tự nhờ ROW_NUMBER().