Để cập nhật (thay thế) tất cả giá trị NULL trong một cột cụ thể, bạn dùng lệnh UPDATE kết hợp điều kiện IS NULL.
Cú pháp
UPDATE ten_bang
SET ten_cot = 'gia_tri_moi'
WHERE ten_cot IS NULL;
Ví dụ minh họa
1. Tạo bảng nhân viên
CREATE TABLE Employee_Information_Table (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(20),
Salary INT,
PRIMARY KEY(Id)
);
2. Chèn dữ liệu (Salary đều là NULL)
INSERT INTO Employee_Information_Table(Name, Salary) VALUES
('John', NULL), ('Carol', NULL), ('Bob', NULL),
('David', NULL), ('Robert', NULL), ('Mike', NULL), ('Sam', NULL);
3. Xem dữ liệu trước khi cập nhật
SELECT * FROM Employee_Information_Table;
Kết quả: Tất cả 7 bản ghi có Salary = NULL.
4. Cập nhật: Thay NULL thành 45500
UPDATE Employee_Information_Table
SET Salary = 45500
WHERE Salary IS NULL;
Kết quả thực thi: Query OK, 7 rows affected (0.23 sec) Rows matched: 7 Changed: 7 Warnings: 0
5. Kiểm tra sau khi cập nhật
SELECT * FROM Employee_Information_Table;
Kết quả:
+----+--------+--------+
| Id | Name | Salary |
+----+--------+--------+
| 1 | John | 45500 |
| 2 | Carol | 45500 |
| 3 | Bob | 45500 |
| 4 | David | 45500 |
| 5 | Robert | 45500 |
| 6 | Mike | 45500 |
| 7 | Sam | 45500 |
+----+--------+--------+
Các biến thể hữu ích
Thay NULL bằng giá trị của cột khác
UPDATE bang SET cot_a = COALESCE(cot_a, cot_b);
Thay NULL bằng giá trị mặc định tùy theo điều kiện
UPDATE bang
SET cot = CASE
WHEN cot IS NULL AND loai = 'A' THEN 100
WHEN cot IS NULL AND loai = 'B' THEN 200
ELSE cot
END;
Chỉ cập nhật một số hàng NULL (giới hạn số lượng)
UPDATE bang SET cot = 'mac_dinh' WHERE cot IS NULL LIMIT 100;
⚠️ Lưu ý quan trọng
- Luôn dùng
IS NULL, KHÔNG** dùng= NULL(luôn trả về UNKNOWN) - Kết hợp
WHEREđể tránh cập nhật nhầm hàng đã có giá trị - Có thể dùng
COALESCE()trong SELECT để hiển thị giá trị thay thế mà không sửa dữ liệu gốc - Backup dữ liệu trước khi UPDATE hàng loạt