Heim  >  Artikel  >  Datenbank  >  MySQL sortiert nach Zeit und aktualisiert einen Feldwert

MySQL sortiert nach Zeit und aktualisiert einen Feldwert

WBOY
WBOYOriginal
2016-08-23 09:01:551837Durchsuche

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

Antwortinhalt:

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?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn