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

การอัปเดตฟิลด์ด้วย GROUP BY ใน MySQL

เทคนิคการอัปเดตข้อมูลแบบจำกัดจำนวนแถวด้วย 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;

ผลลัพธ์หลังอัปเดต

EmployeeIdEmployeeNameEmployeeSalary
1Chris12500
2David12560
3Chris25400

สรุป: ใช้ ORDER BY ... LIMIT n ในคำสั่ง UPDATE เพื่อควบคุมจำนวนแถวที่ได้รับการอัปเดตได้อย่างแม่นยำ