根据以前更新的值mysql更新值

时间:2015-09-08 05:59:12

标签: mysql

我查看了之前可能与此相关的主题,但没有找到与我的问题有关的任何内容。

我的问题是你可以根据之前更新的行更新MySql中的日期时间值吗?为了更好地解释我在这里想知道的是一个伪SQL语句来解释我正在寻找的东西(不,这不是真正的SQL):

update my_datetime set my_datetime = previously_updated_time + 30 minutes;

所以在更新中时间会是这样的:

1970-01-01 00:00:00
1970-01-01 00:30:00
1970-01-02 01:00:00
etc...

但完成此操作基于第一行更新为1970-01-01 00:00:00值。如果无法完成,我理解,但我想看看这是否可能。

1 个答案:

答案 0 :(得分:1)

如果您的主键是INT,则可以执行此操作:

UPDATE mytable SET mytable.datetime = mytable.datetime + INTERVAL 30 * mytable.id MINUTE 

编辑:这不使用主键:

SET @lowest = ( SELECT MIN( datetime ) FROM mytable );

UPDATE mytable
SET mytable.datetime = (@lowest:=@lowest + INTERVAL 30 MINUTE)