Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách thay thế tất cả giá trị NULL trong một cột cụ thể trong MySQL

Để 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