Hãy xem trang này: https:// web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Ở cuối trang, họ giải thích cách bạn có thể làm cho LAST_INSERT_ID có ý nghĩa đối với các bản cập nhật bằng cách chuyển một biểu thức cho hàm MySQL đó.
Từ ví dụ tài liệu MySQL:
Nếu bảng chứa cột AUTO_INCREMENT và INSERT ... UPDATE chèn một hàng, hàm LAST_INSERT_ID () trả về giá trị AUTO_INCREMENT. Nếu câu lệnh cập nhật một hàng thay thế, LAST_INSERT_ID () không có ý nghĩa. Tuy nhiên, bạn có thể giải quyết vấn đề này bằng cách sử dụng LAST_INSERT_ID (expr). Giả sử id đó là cột AUTO_INCREMENT. Để làm cho LAST_INSERT_ID () có ý nghĩa đối với các bản cập nhật, hãy chèn các hàng như sau:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;