Sử dụng hàm LEAST(value, max_value) trong câu UPDATE để đảm bảo giá trị không vượt quá ngưỡng cho phép.
Tạo bảng và dữ liệu
mysql> CREATE TABLE DemoTable (Value INT); Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO DemoTable VALUES(100), (150), (180), (200); Query OK, 4 rows affected (0.21 sec)
Cập nhật cộng 45 nhưng tối đa 200
mysql> SET @value := 45; Query OK, 0 rows affected (0.00 sec) mysql> UPDATE DemoTable SET Value = LEAST(Value + @value, 200); Query OK, 3 rows affected (0.21 sec)
Kết quả:
+-------+ | Value | +-------+ | 145 | | 195 | | 200 | | 200 | +-------+ 4 rows in set (0.00 sec)
Giải thích:
- 100 + 45 = 145 < 200 → 145
- 150 + 45 = 195 < 200 → 195
- 180 + 45 = 225 > 200 → 200 (giới hạn)
- 200 + 45 = 245 > 200 → 200 (giới hạn)
Hàm đối lập: GREATEST(value, min_value) để giới hạn tối thiểu.