Kolla in den här sidan:https://web. archive.org/web/20150329004325/https://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
Längst ner på sidan förklarar de hur du kan göra LAST_INSERT_ID meningsfullt för uppdateringar genom att skicka ett uttryck till den MySQL-funktionen.
Från MySQL-dokumentationsexemplet:
Om en tabell innehåller en kolumn AUTO_INCREMENT och INSERT ... UPDATE infogar en rad, returnerar funktionen LAST_INSERT_ID() värdet AUTO_INCREMENT. Om satsen uppdaterar en rad istället är LAST_INSERT_ID() inte meningsfull. Du kan dock komma runt detta genom att använda LAST_INSERT_ID(expr). Anta att id är kolumnen AUTO_INCREMENT. För att göra LAST_INSERT_ID() meningsfull för uppdateringar, infoga rader enligt följande:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;