เทคนิคการอัปเดตข้อมูลแบบจำกัดจำนวนแถวด้วย ORDER BY LIMIT
ใน MySQL ไม่สามารถใช้ GROUP BY โดยตรงในคำสั่ง UPDATE ได้ แต่สามารถบรรลุเป้าหมายเดียวกันได้โดยใช้ ORDER BY ... LIMIT เพื่ออัปเดตเฉพาะแถวที่ต้องการ
สถานการณ์ตัวอย่าง
ต้องการเพิ่มเงินเดือน 2,500 ให้กับพนักงานชื่อ "Chris" เพียงคนแรก (ตาม EmployeeId)
โครงสร้างตารางและข้อมูลตัวอย่าง
CREATE TABLE DemoTable2018 (
EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
EmployeeName VARCHAR(20),
EmployeeSalary INT
);
INSERT INTO DemoTable2018 (EmployeeName, EmployeeSalary) VALUES
('Chris', 10000),
('David', 12560),
('Chris', 25400);
คำสั่ง UPDATE พร้อม ORDER BY LIMIT
UPDATE DemoTable2018
SET EmployeeSalary = EmployeeSalary + 2500
WHERE EmployeeName = 'Chris'
ORDER BY EmployeeId LIMIT 1;
ผลลัพธ์หลังอัปเดต
| EmployeeId | EmployeeName | EmployeeSalary |
|---|---|---|
| 1 | Chris | 12500 |
| 2 | David | 12560 |
| 3 | Chris | 25400 |
สรุป: ใช้ ORDER BY ... LIMIT n ในคำสั่ง UPDATE เพื่อควบคุมจำนวนแถวที่ได้รับการอัปเดตได้อย่างแม่นยำ