Bạn có thể sử dụng các biến cho việc này:
update mytable cross join
(select @i := 0) params
set mydate = mydate + interval 10 * (@i := @i + 1) hour;
CHỈNH SỬA:
Tôi nhận thấy có có một thứ tự trong dữ liệu gốc. Để điều đó hoạt động:
set @i = 0;
update mytable
set mydate = mydate + interval 10 * (@i := @i + 1) hour
order by id;
Hoặc thậm chí:
update mytable
set mydate = mydate + interval 10 * (id - 1) hour
order by id;
Điều này chỉ hoạt động nếu id
tăng 1 và không có khoảng trống.