Get correct ID from MySQL INSERT with ON DUPLICATE

A way to make things work is to use a dummy column, so if you have a table with auto_increment column ID and unique key a,b and a smallint dummy column for instance, the query might look like this:

INSERT INTO test (a,b) VALUES ('1','2') ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID),Dummy = NOT dummy;

Now, SELECT LAST_INSERT_ID(); will return the correct ID.