MySQL-Datenbank
Jetzt gibt es eine Tabelle mit 4000 Datenteilen,
das andere Feld ist pub_time, basierend auf den Daten Einfügereihenfolge, jetzt möchte ich entsprechend pub_time erhöhen,
den Wert von order_id aktualisieren, um zu erhöhen, gibt es eine gute Möglichkeit? ? ? Es werden nicht die neu hinzugefügten Daten aktualisiert, sondern die vorhandenen 4000 Daten in der Tabelle
MySQL-Bibliothek, richtig? Laden Sie einfach das Skript:
Tabelle t aktualisieren
innerer Join
(SELECT @rownum := @rownum 1 AS rank, t.order_id
FROM Tabelle t, (SELECT @rownum := 5000) r
order by pub_time asc) c on c.order_id = t.order_id
setze t.order_id = c.rank;
Die Grundlogik besteht darin, Seriennummern basierend auf pub_time zu sortieren und zu generieren und dann auf die Originaltabelle zu aktualisieren.
Hierbei ist zu beachten, dass es zur Vermeidung von Konflikten mit dem Primärschlüssel order_id während des Aktualisierungsprozesses am besten ist, den Anfangswert von Rank auf einen größeren Wert festzulegen. Der Anfangswert von rowrum beträgt hier 5000.
Ich bin mit dem SQL-Befehl nicht sehr vertraut. Ich weiß nicht, ob er funktionieren kann. Wenn ja, reicht es meiner Meinung nach, ein Skript in PHP zu schreiben
Das heißt, Ihre order_id wurde beim Einfügen von Daten auf automatische Inkrementierung eingestellt. Jetzt möchten Sie die Daten entsprechend dem Wert von pub_time neu anordnen und den Wert von order_id erneut aktualisieren, oder? . ?Wenn ich das meine, sollten Sie Code verwenden, um das Problem zu lösen, anstatt SQL-Anweisungen zu verwenden. . Zumindest habe ich nicht herausgefunden, wie ich das Problem mit einer Update-Anweisung lösen kann.
Ich verstehe nicht, was du meinst. Möchten Sie den Wert von order_id basierend auf dem inkrementierenden Wert von pub_time aktualisieren?