我想要实现的是表中每行的随机时间戳值,但是从某个预定义的时间开始,就像在这个伪代码中一样:
UPDATE `table` SET `time_column` = RANDOM_TIMESTAMP() NOT LESS THAN NOW() - 1 HOUR;
目前我执行此操作,并且所有行都获得相同的timestamp
值。
UPDATE `table` SET `time` = NOW();
id | time_column
--------------
1 | 100
2 | 100
3 | 100
这项操作仅适用于MySQL吗?在一个UPDATE
查询中?
答案 0 :(得分:2)
您可以这样做:
set @n := 0;
update `table`
set time = UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR + INTERVAL (@n := @n + 1) SECOND);
的初步方法
set @n := 0;
update `table`
set time = (now() - interval 1 hour) + interval (@n := @n + 1) second;
初步方法也很重要。