Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách giảm giá trị trong MySQL nhưng không cho xuống dưới 0


Cú pháp UPDATE an toàn

Sử dụng điều kiện WHERE để chỉ giảm giá trị khi nó lớn hơn 0:

UPDATE ten_bang SET ten_cot = ten_cot - 1 WHERE ten_cot > 0;

Ví dụ minh họa

1. Tạo bảng

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

2. Chèn dữ liệu

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

3. Dữ liệu ban đầu

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

4. Giảm giá trị (chỉ các hàng > 0)

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

5. Kết quả sau khi giảm

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

Mở rộng: Giảm với giá trị tùy chỉnh

-- Giảm 5 đơn vị nhưng không dưới 0 
UPDATE ten_bang SET ten_cot = GREATEST(ten_cot - 5, 0) WHERE ten_cot > 0;

Lưu ý

  • Điều kiện WHERE ten_cot > 0 đảm bảo không trừ vào giá trị 0 hoặc âm
  • Hàm GREATEST() hữu ích khi giảm số lượng lớn
  • Áp dụng tương tự cho tăng giá trị với giới hạn tối đa