2016-08-27 82 views
0

我需要從WordPress發佈表中替換髮布日期。 由於遷移,有> 800.000個帖子條目與日期相同。從第x行到第y行替換MySQL列中的值

如何用「從行x到行」來替換日期?

例如:

  • 行1 - 10.000應該有日期2013-01-02 09:20:10
  • 排10.001 - 20.000應該有日期2013-02-05 12:30:21

等等...

也許取代郵政編號?

我知道有一個SQL查詢來做到這一點,但我不記得哪一個,以及如何正確使用它。

+0

你是通過post_id標識第1-10,000行,然後簡單地對一個正常的更新查詢,其中postid BETWEEN 1 AND 10000等 – Matt

回答

0

嘗試添加LIMIT到SQL更新行:

UPDATE {table} 
SET {datefield} = "{desired date}" 
WHERE {datefield} = "{bad date}" 
LIMIT 10000; 

這將在根據需要一個新的日期時間更新10000行,但是它並不特別挑剔哪些得到何種順序更新通常它將處於數據庫的內部順序(大致)按時間順序排列。

是否有任何其他部分數據可用於確定哪些記錄應該更新哪個日期?

+0

謝謝我用你的梳子在第一條評論中與馬特的建議一併推翻。 UPDATE表 SET datecolumn ='new date' WHERE ID在1和10000之間 ...等等 – REKiRi

0

這不是你要求的,但可能會更好。您可以創建不同的時間戳,就好像後已創建每X秒:

update posts 
set created = timestamp('2013-01-02 12:00:00') + interval id * 140 second 
where 1=1 

http://sqlfiddle.com/#!9/a6c7e0/2

你甚至可以讓他們看起來是隨機的:

update posts 
set created = 
    timestamp('2013-01-02 12:00:00') 
    + interval id * 140 second 
    + interval floor(rand()*140) second 
where 1=1 

http://sqlfiddle.com/#!9/b394c/1

相關問題