Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ROW_NUMBER() ใน MySQL คืออะไร และการใช้งานอย่างไร

ROW_NUMBER() เป็น Window Function ที่เพิ่มเข้ามาตั้งแต่ MySQL 8.0 ใช้สำหรับกำหนดลำดับรันนัมเบอร์ให้กับแถวข้อมูล

ตัวอย่างการใช้งาน

1. สร้างตารางและเพิ่มข้อมูล

CREATE TABLE rowNumberDemo (
    FirstName VARCHAR(100)
);

INSERT INTO rowNumberDemo VALUES ('john'), ('john'), ('Bob'), ('Smith');

2. ใช้ ROW_NUMBER() กำหนดลำดับ

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

3. ผลลัพธ์

+-------------------+-----------+
| RowNumberSequence | FirstName |
+-------------------+-----------+
| 1                 | Bob       |
| 2                 | john      |
| 3                 | john      |
| 4                 | Smith     |
+-------------------+-----------+

คุณสมบัติสำคัญ

  • สั่งลำดับอัตโนมัติ: เริ่มจาก 1 และเพิ่มทีละ 1
  • รองรับ PARTITION BY: สามารถรีเซ็ตลำดับในแต่ละกลุ่มได้
  • ต้องมี ORDER BY: ใน OVER clause เพื่อกำหนดลำดับ

ตัวอย่างเพิ่มเติม: ใช้กับ PARTITION BY

SELECT 
    FirstName,
    ROW_NUMBER() OVER (PARTITION BY FirstName ORDER BY FirstName) AS RowNum
FROM rowNumberDemo;

จะได้ลำดับ 1, 2 สำหรับ 'john' และ 1 สำหรับ 'Bob' และ 'Smith' แยกกัน