Durchführen von Massenaktualisierungen mit INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE
Beim Versuch, neue Daten in ein einzufügen In der Tabelle kann es Fälle geben, in denen vorhandene Datensätze mit identischen eindeutigen Schlüsseln mit den neuesten Werten aktualisiert werden müssen. MySQL bietet eine praktische Syntax für solche Szenarien mit der Anweisung INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE.
In Ihrem Fall müssen Sie alle Spalten außer exp_id,created_by, location, animal aktualisieren , Startzeit und Endzeit. Die Syntax für diese Aktualisierungsklausel lautet:
ON DUPLICATE KEY UPDATE <column_name>=<select_column_name>, ...
Hier
Basierend auf Ihrer Abfrage würde die vollständige Anweisung so aussehen:
INSERT INTO lee(exp_id, created_by, location, animal, starttime, endtime, entct, inact, inadur, inadist, smlct, smldur, smldist, larct, lardur, lardist, emptyct, emptydur) SELECT id, uid, t.location, t.animal, t.starttime, t.endtime, t.entct, t.inact, t.inadur, t.inadist, t.smlct, t.smldur, t.smldist, t.larct, t.lardur, t.lardist, t.emptyct, t.emptydur FROM tmp t WHERE uid=x ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptyct, emptydur=t.emptydur;
Mit dieser Anweisung fügt MySQL die Daten von tmp in ein lee, und wenn ein doppelter Schlüssel gefunden wird, werden die angegebenen Spalten mit den Werten aus der SELECT-Anweisung aktualisiert.
Das obige ist der detaillierte Inhalt vonWie führe ich Massenaktualisierungen in MySQL mit INSERT INTO ... SELECT ... ON DUPLICATE KEY UPDATE durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!