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

ลดค่าลงเป็นศูนย์ในแถวเฉพาะด้วย MySQL UPDATE

ใช้คำสั่ง SET เพื่อลดค่า และ WHERE เพื่อระบุเงื่อนไขแถวที่ต้องการให้ค่าเป็น 0

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Number INT
);

เพิ่มข้อมูล

mysql> INSERT INTO DemoTable(Number) VALUES (10);
mysql> INSERT INTO DemoTable(Number) VALUES (20);
mysql> INSERT INTO DemoTable(Number) VALUES (1);
mysql> INSERT INTO DemoTable(Number) VALUES (0);
mysql> INSERT INTO DemoTable(Number) VALUES (-1);

ดูข้อมูลก่อนอัปเดต

mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
|  1 |     10 |
|  2 |     20 |
|  3 |      1 |
|  4 |      0 |
|  5 |     -1 |
+----+--------+

คำสั่งลดค่าลงเป็น 0 (เฉพาะแถวที่ Id=3 และค่าเดิมมากกว่า 0)

mysql> UPDATE DemoTable
    -> SET Number = Number - 1
    -> WHERE Id = 3 AND Number > 0;
Query OK, 1 row affected (0.20 sec)
Rows matched: 1  Changed: 1  Warnings: 0

ดูข้อมูลหลังอัปเดต

mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
|  1 |     10 |
|  2 |     20 |
|  3 |      0 |
|  4 |      0 |
|  5 |     -1 |
+----+--------+

หมายเหตุ: เงื่อนไข Number > 0 ป้องกันไม่ให้ค่าติดลบ (แถว Id=5 ไม่ถูกอัปเดต)