使用MySQL中的更新增加每10行的时间

时间:2015-12-08 05:30:36

标签: mysql sql sql-update

需要一个mysql更新查询来增加每10行6秒的时间,第一个输入时间从特定的日期时间开始......

让我们说HashMap是我想要的前10个条目的时间戳, 接下来应该有10个条目        2015-12-08 00:00:00

然后是下一个10 -

2015-12-08 00:00:06

接下来的10个

2015-12-08 00:00:12

......依此类推到最后一个条目,时间必须增加6秒,相应地2015-12-08 00:00:18 minutes增加到最后一个条目

任何想法如何为此进行更新查询?

PS:我在任何列的表中都没有唯一的id或值,值可能会重复。我更喜欢使用Update语句,因为我可能也需要更改其他表,而不是触发器或存储过程。我正在使用MySQL v7.02 SQLyog Enterprise

1 个答案:

答案 0 :(得分:2)

希望以下声明可以提供帮助:

select
 @row_n := @row_n + 1 as row_no
, case when MOD(@row_n,10) =0 then @time:= ADDTIME(@time,'00:06') else @time end
  from [your_table]
   JOIN  (SELECT @row_n := 0) r 
   JOIN  (SELECT @time := now()) t

和更新声明的示例:

update tableA set dateCol=nestedTable.colB
from (
  select
   tableB.[some key]
 ,  @row_n := @row_n + 1 as row_no
 , (case when MOD(@row_n,10) =0 then @time:= ADDTIME(@time,'00:06') else @time end ) as colB
  from tableB
   JOIN  (SELECT @row_n := 0) r 
   JOIN  (SELECT @time := now()) t
 ) nestedTable
 where tableA.[some key] = nestedTable.[some key]