อัปเดตค่าคอลัมน์ลดลงจำนวนคงที่ด้วย WHERE
ใช้คำสั่ง UPDATE พร้อมนิพจน์คำนวณ Score = Score - 10 และ WHERE กำหนดเงื่อนไขแถวที่ต้องการแก้ไข
ตัวอย่างสร้างตารางและข้อมูล
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Score INT
);
INSERT INTO DemoTable (Score) VALUES (67), (78), (90), (56);
ข้อมูลก่อนอัปเดต
+----+-------+ | Id | Score | +----+-------+ | 1 | 67 | | 2 | 78 | | 3 | 90 | | 4 | 56 | +----+-------+
คำสั่งลด Score ลง 10 สำหรับ Id = 3
UPDATE DemoTable SET Score = Score - 10 WHERE Id = 3;
ข้อมูลหลังอัปเดต
+----+-------+ | Id | Score | +----+-------+ | 1 | 67 | | 2 | 78 | | 3 | 80 | | 4 | 56 | +----+-------+
คำอธิบาย:
Score = Score - 10ใช้อ้างอิงค่าเดิมของคอลัมน์เดียวกันในนิพจน์คำนวณค่าใหม่WHERE Id = 3จำกัดเฉพาะแถวที่ Id เท่ากับ 3- สามารถใช้ได้กับคอลัมน์ตัวเลขทุกชนิด (INT, DECIMAL, FLOAT, DOUBLE)
ประยุกต์ใช้:
- เพิ่มค่า:
SET Score = Score + 10 - คูณ:
SET Price = Price * 1.07(เพิ่ม 7%) - คำนวณจากคอลัมน์อื่น:
SET Total = Price * Quantity - อัปเดตหลายแถว:
WHERE Score > 80,WHERE Id IN (1,3,5)
⚐ ความปลอดภัย: ควรทดสอบด้วย SELECT ก่อน UPDATE เช่น SELECT Id, Score, Score - 10 AS NewScore FROM DemoTable WHERE Id = 3;