Способ ON DUPLICATE KEY UPDATE работает следующим образом.Скажем, у вас есть таблица ("tableA") с 3 полями в ней (fieldA, fieldB, fieldC), и давайте представим, что fieldA установлено как уникальное.Давайте также представим, что в этой таблице уже есть 1 строка данных: fieldA fieldB fieldC 1 'foo' 'test'
Учитывая следующий запрос:
INSERT into tableA (fieldA,fieldB,fieldC) VALUES (1,'bar','example') ON DUPLICATE KEY UPDATE fieldB=VALUES(fieldB),fieldC=VALUES(fieldC)
MySQL будет предполагать, что fieldAявляется уникальным, и новые записи станут такими: fieldA fieldB fieldC 1 'bar' 'example'
Как и все остальное, я бы рекомендовал прочитать его перед использованием в производстве:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html