需要一个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
答案 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]