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

Cập nhật hai cột cùng lúc trong một câu lệnh MySQL

Vấn đề: UPDATE nhiều cột trong một truy vấn

Cần thay đổi cả FirstName và LastName cho hàng có Id = 103.

Giải pháp: SET cột1 = giá trị1, cột2 = giá trị2

Chỉ dùng một từ khóa SET, các cặp cột/giá trị cách nhau bằng dấu phẩy.

1. Tạo bảng và dữ liệu

CREATE TABLE DemoTable (
    Id INT NOT NULL,
    FirstName VARCHAR(20),
    LastName VARCHAR(20)
);

INSERT INTO DemoTable VALUES
(101, 'John', 'Smith'),
(102, 'John', 'Doe'),
(103, 'Adam', 'Smith'),
(104, 'David', 'Miller');

2. Cập nhật Id = 103

UPDATE DemoTable 
SET FirstName = 'Carol', LastName = 'Taylor' 
WHERE Id = 103;

3. Kết quả

+-----+-----------+----------+
| Id  | FirstName | LastName |
+-----+-----------+----------+
| 101 | John      | Smith    |
| 102 | John      | Doe      |
| 103 | Carol     | Taylor   |
| 104 | David     | Miller   |
+-----+-----------+----------+

Mở rộng

  • Cập nhật nhiều hàng: WHERE Id IN (101, 102) hoặc điều kiện khác.
  • Cập nhật dựa trên giá trị cũ: SET Age = Age + 1, LastLogin = NOW().
  • Cập nhật từ bảng khác: UPDATE t1 JOIN t2 ON ... SET t1.col = t2.col.

Lưu ý

  • Luôn có WHERE trừ khi thực sự muốn cập nhật toàn bảng.
  • Kiểm tra bằng SELECT cùng điều kiện WHERE trước khi chạy UPDATE.
  • Sử dụng transaction cho các cập nhật quan trọng.