如何更新时间戳列,以便表中的每一行都有一个随机值?

时间:2017-09-16 15:09:13

标签: mysql sql

我想要实现的是表中每行的随机时间戳值,但是从某个预定义的时间开始,就像在这个伪代码中一样:

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查询中?

1 个答案:

答案 0 :(得分:2)

您可以这样做:

set @n := 0;
update `table`
    set time = UNIX_TIMESTAMP(NOW() - INTERVAL 1 HOUR + INTERVAL (@n := @n + 1) SECOND);

Gordon Linoff

的初步方法
set @n := 0;
update `table`
    set time = (now() - interval 1 hour) + interval (@n := @n + 1) second;

初步方法也很重要。