Verwenden von „INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE“
Beim Durchführen eines Einfügevorgangs mit MySQL wird Folgendes angezeigt: Es ist möglich, vorhandene Zeilen zu aktualisieren, wenn ein eindeutiger Schlüsselkonflikt auftritt. Dies kann mit der Syntax „INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE“ erreicht werden.
In der angegebenen Abfrage ist es beabsichtigt, Zeilen aus einer temporären Tabelle ('tmp') einzufügen. in die 'Lee'-Tabelle. Wenn in „lee“ bereits eine Zeile mit demselben eindeutigen Schlüssel („id“ in diesem Fall) vorhanden ist, sollte die Abfrage bestimmte Spalten auf die Werte aus der Tabelle „tmp“ aktualisieren.
Die Syntax für das UPDATE Die Klausel in diesem Szenario lautet wie folgt:
ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
Hier bezieht sich „column1“ auf eine Spalte in der „lee“-Tabelle und „SELECT_column1“ auf die entsprechende Spalte in die SELECT-Klausel. Durch die Angabe dieser Paare bestimmt MySQL, welche Spalten mit den neuen Werten aus SELECT aktualisiert werden sollen.
Für die bereitgestellte Abfrage würde die UPDATE-Klausel wie folgt aussehen:
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.emptydur, emptydur=t.emptydur
Dadurch wird sichergestellt, dass die Die Spalten „entct“, „inact“, „inadur“ usw. werden mit den Werten aus den entsprechenden Spalten in der temporären Tabelle aktualisiert, wenn ein doppelter Schlüssel gefunden wird.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich vorhandene Zeilen während eines INSERT mithilfe von MySQLs ON DUPLICATE KEY UPDATE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!