我在我的表中有一個名爲updated_date的'timestamp'類型列。向列添加列時,所有行都更新到相同的updated_date。我們還在測試中,這不是一場災難,但它破壞了我們網站的功能(按照updated_date的順序顯示)。mysql,需要隨機更新列
有什麼辦法可以將列中的所有updated_date值(但id低於x)更改爲某個隨機日期(或增量日期)?
在此先感謝!
我在我的表中有一個名爲updated_date的'timestamp'類型列。向列添加列時,所有行都更新到相同的updated_date。我們還在測試中,這不是一場災難,但它破壞了我們網站的功能(按照updated_date的順序顯示)。mysql,需要隨機更新列
有什麼辦法可以將列中的所有updated_date值(但id低於x)更改爲某個隨機日期(或增量日期)?
在此先感謝!
這可能會解決你的問題:
UPDATE updated_table SET timestamp = FROM_UNIXTIME(1e9 + id) WHERE id < x;
基本上它設置日期以相當於1十億+ ID(1,000,000,000 UNIX時間戳是2001年9月8日21時46分四十○秒)的Unix時間戳。這樣你就可以按照ID的順序獲得獨特的時間戳。
如果他想從任何其他日期開始日期,那麼他也可以按照自己的意願計算出發時間,但這樣看起來會很有趣,因爲我認爲在不到一天的時間內就會發布100,000個帖子。 –
同意,你可以使用id * 60將它們設置爲相隔一分鐘或其他重要的東西,或者用其他日期替換1e9。不知道更多關於OP是如何完成的,我認爲最好提供一個簡單的解決方案,讓他可以調整以適應他的需求。 –
非常好點的先生 –
時間戳只是自紀元(1970-01-01 00:00:01)以來的秒數。如果您從基本時間戳開始,則可以添加自該數字開始的隨機數字,並且您有隨機日期。
嗯,你可以做到這一點
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
想一些隨機數據它融合到你的需求
讓他誰沒有''更新''沒有'哪裏'投第一塊石頭:) – SWeko