2009-04-14 8 views
4

Ich habe eine Reihe von Posts in eine Wordpress-Site importiert, die alle genau das gleiche Datum haben. Ich möchte die Postdaten so bearbeiten, dass sie um eine Sekunde versetzt sind.Wie können Daten in einer MySQL-Datenbank um 1 Sekunde versetzt werden?

Meine Sorge ist, dass es möglicherweise ein Leistungsproblem gibt, wenn alle Daten identisch sind.

Wer weiß einen schnellen Weg, um dies mit phpMyAdmin zu tun, um die MySQL-Datenbank oder eine andere Methode zu bearbeiten?

Antwort

4

Sie könnten sie alle auf 'jetzt' + ID setzen.

Es könnte aussehen wie;

UPDATE wp_posts 
SET  createdDate = DATE_ADD(now(), INTERVAL wp_posts.wp_id SECOND); 
1
UPDATE table SET mydate = DATE_ADD(my_date, INTERVAL 1 SECOND); 
0
SET @r := '2009-04-14'; 
UPDATE mytable 
SET  mydate = (@r := @r + INTERVAL 1 SECOND); 

Oder in einer einzigen Abfrage, wenn Sie nicht den Sitzungsstatus halten:

UPDATE mytable, 
     (
     SELECT @r := '2009-04-14' 
     ) q 
SET  mydate = (@r := @r + INTERVAL 1 SECOND) 
3

Bevor Sie Schlamassel mit diesem, schlage ich vor, dass Sie sicherstellen, dass in der Tat ein Problem hat mit gleichzeitige Zeiten.

Ich finde ziemlich oft, dass das Durcheinander mit den Daten unbeabsichtigte Folgen hat. Und ich wäre mäßig überrascht, wenn das Problem wirklich signifikant ist.

Es scheint mir, dass ich Vorschläge sehe, die alle Zeilen auf den gleichen Offset-Wert setzen.

Vorausgesetzt, dass Sie eine ganze Zahl Ersatzschlüssel haben, und die Zeilen benachbart sind, könnten Sie

UPDATE Tabelle
SET mydate = DATE_ADD verwenden (my_date, INTERVAL id - SECOND)
WHERE id ZWISCHEN UND;