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

Thực hiện UPDATE MySQL dựa trên giá trị DATE của cột khác

Cập nhật hàng dựa trên điều kiện so sánh cột kiểu DATE.

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

mysql> CREATE TABLE DemoTable(
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(100),
    AdmissionDate DATE
); 
Query OK, 0 rows affected (0.42 sec)

mysql> INSERT INTO DemoTable(Name, AdmissionDate) VALUES 
('Chris','2019-11-21'), ('Mike','2019-03-11'), 
('Sam','2018-04-01'), ('Carol','2019-05-01'); 
Query OK, 4 rows affected

Cập nhật hàng Id=3 (ngày 2018-04-01 → 2019-04-01, tên thành Robert)

mysql> UPDATE DemoTable 
SET Name = 'Robert', AdmissionDate = '2019-04-01' 
WHERE Id = 3; 
Query OK, 1 row affected (0.14 sec)

Kết quả:

+----+--------+---------------+
| Id | Name   | AdmissionDate |
+----+--------+---------------+
| 1  | Chris  | 2019-11-21    |
| 2  | Mike   | 2019-03-11    |
| 3  | Robert | 2019-04-01    |
| 4  | Carol  | 2019-05-01    |
+----+--------+---------------+

Mở rộng - cập nhật dựa trên điều kiện DATE:

-- Cập nhật tất cả hàng có AdmissionDate trước 2019-05-01
UPDATE DemoTable 
SET Name = 'Updated' 
WHERE AdmissionDate < '2019-05-01';

Lưu ý: Luôn dùng định dạng 'YYYY-MM-DD' cho literal DATE trong SQL.