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

Cập nhật 2 cột cùng lúc trong MySQL

UPDATE nhiều cột trong một câu lệnh

Dùng SET cot1 = giaTri1, cot2 = giaTri2, ... phân cách bằng dấu phẩy.

Cú pháp

UPDATE tenBang
SET cot1 = 'giaTri1', cot2 = 'giaTri2'
WHERE dieu_kien;

Ví dụ minh họa

Bảng StudentInformations:

CREATE TABLE StudentInformations (
    StudentId INT NOT NULL AUTO_INCREMENT,
    StudentFirstName VARCHAR(20),
    StudentLastName VARCHAR(20),
    PRIMARY KEY (StudentId)
);
INSERT INTO StudentInformations (StudentFirstName, StudentLastName) VALUES
('John','Smith'), ('Carol','Taylor'), ('Mike','Jones'),
('Sam','Williams'), ('Bob','Davis'), ('David','Miller');

Cập nhật StudentId = 3:

UPDATE StudentInformations
SET StudentFirstName = 'Robert', StudentLastName = 'Brown'
WHERE StudentId = 3;

Kết quả

+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
|         1 | John             | Smith           |
|         2 | Carol            | Taylor          |
|         3 | Robert           | Brown           |  -- ĐÃ THAY ĐỔI
|         4 | Sam              | Williams        |
|         5 | Bob              | Davis           |
|         6 | David            | Miller          |
+-----------+------------------+-----------------+

Mở rộng

  • Cập nhật nhiều hàng: WHERE StudentId IN (3,4,5).
  • Cập nhật dựa trên giá trị cũ: SET Price = Price * 1.1, UpdatedAt = NOW().
  • Cập nhật từ bảng khác: UPDATE a JOIN b ON ... SET a.cot = b.cot.
  • RETURNING (MySQL 8.0.20+): UPDATE ... SET ... WHERE ... RETURNING StudentId, StudentFirstName.

Lưu ý an toàn

  • Luôn có WHERE (trừ khi muốn update toàn bảng).
  • Test với SELECT trước: SELECT * FROM bang WHERE dieu_kien.
  • Sử dụng transaction cho cập nhật quan trọng: START TRANSACTION; UPDATE ...; COMMIT;.