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

วิธีลดค่าลง 10 สำหรับแถวเฉพาะใน MySQL

อัปเดตค่าคอลัมน์ลดลงจำนวนคงที่ด้วย 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;