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

UPDATE ไม่ให้ค่าเกินค่าสูงสุดที่กำหนดใน MySQL

ใช้ LEAST() เลือกค่าที่น้อยกว่าระหว่าง (ค่าเดิม + เพิ่ม) และค่าสูงสุดที่อนุญาต

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

mysql> CREATE TABLE DemoTable (
    -> Value INT
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES(100), (150), (180), (200);

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-------+
| Value |
+-------+
| 100   |
| 150   |
| 180   |
| 200   |
+-------+

คำสั่งเพิ่ม 45 แต่ไม่เกิน 200

mysql> SET @value := 45;
mysql> UPDATE DemoTable SET Value = LEAST(Value + @value, 200);

ตรวจสอบผลลัพธ์

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-------+
| Value |
+-------+
| 145   |
| 195   |
| 200   |
| 200   |
+-------+

คำอธิบาย: LEAST(Value + 45, 200) จะคืนค่าที่น้อยกว่า 100+45=145 (น้อยกว่า 200) -> 145 | 150+45=195 -> 195 | 180+45=225 (มากกว่า 200) -> 200 | 200+45=245 -> 200