Sử dụng DATE_ADD(date_col, INTERVAL other_col UNIT) trong UPDATE để tăng ngày động theo giá trị của cột khác.
Tạo bảng nhắc nhở thanh toán
mysql> CREATE TABLE DemoTable (
-> DueDate DATE,
-> RepeatTime INT
-> );
Query OK, 0 rows affected (0.57 sec)
mysql> INSERT INTO DemoTable VALUES('2019-01-23', 3), ('2019-06-22', 6), ('2019-03-28', 2), ('2017-07-25', 6);
Query OK, 4 rows affected (0.13 sec)
Cập nhật DueDate cộng RepeatTime tháng (chỉ cho RepeatTime != 6)
mysql> UPDATE DemoTable SET DueDate = DATE_ADD(DueDate, INTERVAL RepeatTime MONTH) WHERE RepeatTime != 6; Query OK, 2 rows affected (0.25 sec)
Kết quả:
+------------+------------+ | DueDate | RepeatTime | +------------+------------+ | 2019-04-23 | 3 | | 2019-06-22 | 6 | | 2019-05-28 | 2 | | 2017-07-25 | 6 | +------------+------------+ 4 rows in set (0.00 sec)
Giải thích:
INTERVAL RepeatTime MONTH: số tháng lấy từ cột RepeatTimeWHERE RepeatTime != 6: chỉ cập nhật hàng có RepeatTime khác 6- Hàng 2 và 4 (RepeatTime=6) không đổi