2017-09-16 9 views
0

私が達成したいことは、テーブルのすべての行のためのランダムなタイムスタンプ値であるが、この擬似コードのように、いくつかの事前定義された時から始まる:テーブルのすべての行がランダムな値を持つようにtimestamp列を更新するには?

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でのみ可能ですか? 1つのUPDATEクエリですか?

答えて

2

あなたはこのような何か行うことができます:Gordon Linoff

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

最初のアプローチによって

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

初期アプローチすることも知ることが重要です。

+0

DATETIMEをintに変換する必要があるため、UNIX_TIMESTAMPが追加されました。 –

関連する問題