Giới thiệu
Câu lệnh UPDATE cho phép thay đổi giá trị của một hoặc nhiều cột trên các hàng thỏa mãn điều kiện. Bài viết demo cập nhật cột Value cho hàng có Id = 4.
Ví dụ thực hành
1. Tạo bảng DemoTable770
mysql> CREATE TABLE DemoTable770 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value INT
);
2. Chèn dữ liệu
mysql> INSERT INTO DemoTable770(Value) VALUES(10),(90),(160),(450),(560);
3. Cập nhật: cộng thêm 150 vào Value của hàng Id=4
mysql> UPDATE DemoTable770 SET Value = Value + 150 WHERE Id = 4;
4. Kết quả sau cập nhật
+----+-------+
| Id | Value |
+----+-------+
| 1 | 10 |
| 2 | 90 |
| 3 | 160 |
| 4 | 600 | -- 450 + 150
| 5 | 560 |
+----+-------+
Các lưu quan trọng
- Luôn có WHERE trừ khi bạn muốn cập nhật toàn bộ bảng.
- Có thể cập nhật nhiều cột:
SET col1 = val1, col2 = val2. - Sử dụng biểu thức:
SET Value = Value * 1.1(tăng 10%). LIMITcó thể dùng để giới hạn số hàng cập nhật:UPDATE ... WHERE ... LIMIT 1.- Kiểm tra trước bằng
SELECTcùng điều kiệnWHERE.
An toàn dữ liệu
-- Bọc trong transaction (nếu dùng InnoDB)
START TRANSACTION;
UPDATE DemoTable770 SET Value = Value + 150 WHERE Id = 4;
-- Kiểm tra kết quả
SELECT * FROM DemoTable770 WHERE Id = 4;
COMMIT; -- hoặc ROLLBACK nếu sai