Vấn đề: Cập nhật giá trị chuỗi cụ thể trong cột
Thường gặp khi dữ liệu nhập vào chứa từ khóa như 'None', 'NULL' (dạng chuỗi) thay vì giá trị NULL thực sự. Cần thay thế bằng giá trị chuẩn như 'N/A'.
Giải pháp: Sử dụng UPDATE với WHERE
Câu lệnh UPDATE kết hợp WHERE cho phép cập nhật chính xác các hàng thỏa mãn điều kiện.
1. Tạo bảng và chèn dữ liệu
CREATE TABLE DemoTable (
FirstName VARCHAR(20),
LastName VARCHAR(20),
Age INT
);
INSERT INTO DemoTable VALUES
('John', 'Smith', 23),
('None', 'Miller', 28),
('None', 'Taylor', 26),
('Chris', 'Brown', 26);
2. Dữ liệu trước khi cập nhật
+-----------+----------+------+
| FirstName | LastName | Age |
+-----------+----------+------+
| John | Smith | 23 |
| None | Miller | 28 |
| None | Taylor | 26 |
| Chris | Brown | 26 |
+-----------+----------+------+
3. Câu lệnh UPDATE
UPDATE DemoTable
SET FirstName = 'N/A'
WHERE FirstName = 'None';
4. Kết quả sau cập nhật
+-----------+----------+------+
| FirstName | LastName | Age |
+-----------+----------+------+
| John | Smith | 23 |
| N/A | Miller | 28 |
| N/A | Taylor | 26 |
| Chris | Brown | 26 |
+-----------+----------+------+
Mở rộng: Cập nhật nhiều cột cùng lúc
UPDATE DemoTable
SET FirstName = 'N/A', LastName = 'Unknown'
WHERE FirstName = 'None' AND Age > 25;
Lưu ý quan trọng
- Luôn kiểm tra điều kiện
WHEREbằngSELECTtrước khi chạyUPDATE. - Sử dụng transaction (
START TRANSACTION/COMMIT/ROLLBACK) cho các cập nhật quan trọng. - Phân biệt
'None'(chuỗi) vàNULL(giá trị rỗng) – chúng khác nhau hoàn toàn.