我的表中有一个名为 updated_date 的“时间戳”类型列。向表中添加列时,所有行都更新为相同的 updated_date。这不是一场灾难,因为我们仍在测试中,但它破坏了我们网站的功能(按更新日期的顺序显示)。
有没有办法可以将列中的所有 updated_date 值(但 id 低于 x)更改为某个随机日期(或增量日期)?
提前致谢!
这可能会解决您的问题:
UPDATE updated_table SET timestamp = FROM_UNIXTIME(1e9 + id) WHERE id < x;
基本上它将日期设置为对应于 10 亿 + id 的 Unix 时间戳(1,000,000,000 个 unix 时间戳是 2001-09-08 21:46:40)。这样您就可以按 id 的顺序获得唯一的时间戳。
嗯,你可以这样做
UPDATE table SET updated_time = NOW() WHERE id < x
给定的 id 属于表
如果您想要过去的一些随机数据
UPDATE test2 SET update_time = NOW() - interval rand()*120 day - interval rand()*36000 second WHERE id < x
根据您的需要进行调整
时间戳只是自纪元 (1970-01-01 00:00:01) 以来的秒数。如果您从基本时间戳开始,您可以从该数字开始添加随机秒数,并且您有随机日期。