Sử dụng biến @ten_bien trong mệnh đề SET của UPDATE để cộng/gán giá trị động.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1349 (
ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ProductPrice INT
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable1349(ProductPrice) VALUES(7644), (90843), (9083), (10000);
Xem dữ liệu:
mysql> SELECT * FROM DemoTable1349;
+-----------+--------------+ | ProductId | ProductPrice | +-----------+--------------+ | 1 | 7644 | | 2 | 90843 | | 3 | 9083 | | 4 | 10000 | +-----------+--------------+
Gán biến và cập nhật hàng ProductId=4 (cộng 500):
mysql> SET @AppendValue := 500; mysql> UPDATE DemoTable1349 SET ProductPrice = ProductPrice + @AppendValue WHERE ProductId = 4;
Kết quả (hàng 4: 10000 → 10500):
mysql> SELECT * FROM DemoTable1349;
+-----------+--------------+ | ProductId | ProductPrice | +-----------+--------------+ | 1 | 7644 | | 2 | 90843 | | 3 | 9083 | | 4 | 10500 | +-----------+--------------+
Mẹo: Biến @AppendValue có thể tính toán từ truy vấn khác: SET @AppendValue := (SELECT AVG(Price) FROM Products);.