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

วิธีลดค่าลงใน MySQL โดยไม่ให้ต่ำกว่าศูนย์

การใช้ UPDATE ร่วมกับเงื่อนไข WHERE

สามารถลดค่าลง (Decrement) ในคอลัมน์ได้โดยใช้คำสั่ง UPDATE พร้อมกำหนดเงื่อนไขไม่ให้ค่าต่ำกว่า 0

รูปแบบคำสั่ง

UPDATE yourTableName 
SET yourColumnName = yourColumnName - 1 
WHERE yourColumnName > 0;

ตัวอย่างการสร้างตารางและข้อมูล

mysql> CREATE TABLE DecrementDemo (
    -> DecrementValue INT
    -> );
Query OK, 0 rows affected (0.62 sec)

mysql> INSERT INTO DecrementDemo VALUES(15),(14),(13),(12),(11),(10);
Query OK, 6 rows affected (0.18 sec)

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

mysql> SELECT * FROM DecrementDemo;
+----------------+
| DecrementValue |
+----------------+
| 15             |
| 14             |
| 13             |
| 12             |
| 11             |
| 10             |
+----------------+
6 rows in set (0.00 sec)

คำสั่งลดค่าลง 1 โดยไม่ให้ต่ำกว่า 0

mysql> UPDATE DecrementDemo
    -> SET DecrementValue = DecrementValue - 1 
    -> WHERE DecrementValue > 0;
Query OK, 6 rows affected (0.16 sec)

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

mysql> SELECT * FROM DecrementDemo;
+----------------+
| DecrementValue |
+----------------+
| 14             |
| 13             |
| 12             |
| 11             |
| 10             |
| 9              |
+----------------+
6 rows in set (0.00 sec)

จุดสำคัญ: เงื่อนไข WHERE DecrementValue > 0 จะป้องกันไม่ให้ค่าลดลงต่ำกว่าศูนย์ เนื่องจากจะอัปเดตเฉพาะแถวที่ค่ามากกว่า 0 เท่านั้น