このページをチェックしてください: https://web。 archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
ページの下部で、MySQL関数に式を渡すことでLAST_INSERT_IDを更新に対して意味のあるものにする方法を説明しています。
MySQLドキュメントの例から:
テーブルにAUTO_INCREMENT列が含まれていて、INSERT ... UPDATEが行を挿入する場合、LAST_INSERT_ID()関数はAUTO_INCREMENT値を返します。ステートメントが代わりに行を更新する場合、LAST_INSERT_ID()は意味がありません。ただし、LAST_INSERT_ID(expr)を使用してこれを回避できます。 idがAUTO_INCREMENT列であるとします。 LAST_INSERT_ID()を更新にとって意味のあるものにするには、次のように行を挿入します。
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;