ใช้คำสั่ง UPDATE ร่วมกับนิพจน์เลขคณิต column = column + 1
สร้างตารางตัวอย่าง
mysql> CREATE TABLE Add1ToExistingValue (
-> Value INT
-> );
เพิ่มข้อมูลตัวอย่าง (9 แถว)
mysql> INSERT INTO Add1ToExistingValue VALUES (10), (13), (15), (16), (20), (40), (50), (55), (56);
แสดงข้อมูลก่อน
mysql> SELECT * FROM Add1ToExistingValue;
ผลลัพธ์:
+-------+ | Value | +-------+ | 10 | | 13 | | 15 | | 16 | | 20 | | 40 | | 50 | | 55 | | 56 | +-------+
เพิ่ม +1 ให้ค่าที่ >= 20
mysql> UPDATE Add1ToExistingValue SET Value = Value + 1 WHERE Value >= 20; Query OK, 5 rows affected (0.08 sec)
ตรวจสอบหลังอัปเดต
mysql> SELECT * FROM Add1ToExistingValue;
ผลลัพธ์ (20->21, 40->41, 50->51, 55->56, 56->57):
+-------+ | Value | +-------+ | 10 | | 13 | | 15 | | 16 | | 21 | | 41 | | 51 | | 56 | | 57 | +-------+
รูปแบบการอัปเดตเลขคณิตอื่นๆ
| การดำเนินการ | ไวยากรณ์ | ตัวอย่าง |
|---|---|---|
| บวก | col = col + n | SET score = score + 10 |
| ลบ | col = col - n | SET stock = stock - 1 |
| คูณ | col = col * n | SET price = price * 1.07 |
| หาร | col = col / n | SET avg = total / count |
| โมดูล로 | col = col % n | SET remainder = id % 10 |
เพิ่ม +1 ให้ทุกแถว (ไม่มี WHERE)
UPDATE table_name SET counter = counter + 1;
ใช้ใน Trigger (อัตโนมัติ)
CREATE TRIGGER increment_counter BEFORE INSERT ON stats FOR EACH ROW SET NEW.counter = (SELECT COALESCE(MAX(counter), 0) + 1 FROM stats);