Để giảm giá trị của một cột số cho một bản ghi cụ thể xuống 0 (hoặc giảm dần), bạn sử dụng câu lệnh UPDATE kết hợp với mệnh đề WHERE để xác định bản ghi và điều kiện.
Tạo bảng và dữ liệu mẫu
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Number INT
);
mysql> INSERT INTO DemoTable (Number) VALUES
(10), (20), (1), (0), (-1);
Xem dữ liệu ban đầu
mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
| 1 | 10 |
| 2 | 20 |
| 3 | 1 |
| 4 | 0 |
| 5 | -1 |
+----+--------+
Câu lệnh UPDATE giảm giá trị cho Id = 3
Chỉ giảm khi giá trị hiện tại > 0 để tránh âm:
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
Kết quả sau khi cập nhật
mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
| 1 | 10 |
| 2 | 20 |
| 3 | 0 |
| 4 | 0 |
| 5 | -1 |
+----+--------+
Lưu ý: Điều kiện Number > 0 đảm bảo không giảm giá trị đã là 0 hoặc âm. Nếu muốn đặt trực tiếp về 0 bất kể giá trị cũ, dùng SET Number = 0.