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

เพิ่มค่า +1 ให้กับคอลัมน์ใน MySQL (UPDATE เพิ่มค่า)

ใช้คำสั่ง 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 + nSET score = score + 10
ลบcol = col - nSET stock = stock - 1
คูณcol = col * nSET price = price * 1.07
หารcol = col / nSET avg = total / count
โมดูล로col = col % nSET 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);