使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”
當使用MySQL 執行插入操作時,它如果發生唯一鍵衝突,可以更新現有行。這可以使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”語法來實現。
在給定的查詢中,旨在從臨時表('tmp')插入行進入“lee”表。如果「lee」中已存在具有相同唯一鍵(在本例中為「id」)的行,則查詢應將特定列更新為「tmp」表中的值。
UPDATE 的語法此場景中的子句如下:
ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
這裡,「column1」指的是「lee」表中的列,「SELECT_column1」指的是引用SELECT子句中的對應列。透過指定這些對,MySQL 決定使用 SELECT 中的新值更新哪些欄位。
對於提供的查詢,UPDATE 子句將如下所示:
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
這可確保當遇到重複鍵時,「entct」、「inact」、「inadur」等列將使用臨時表中對應列的值進行更新。
以上是如何在插入期間使用 MySQL 的 ON DUPLICATE KEY UPDATE 更新現有行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!