Mysql - INSERT или UPDATE если запись уже существует - пример - ON DUPLICATE KEY UPDATE

Forums:

Если вы хотите одним запросом решить задачу добавления/обновления, то используйте конструкция INSERT....ON DUPLICATE KEY UPDATE, которая позволит в случае совпадения PRIMARY KEY или любого другого уникального индекса не добавить новую строку, а обновить имеющуюся, например:

INSERT INTO shop_meta SET some_id = 1215, volume = 3 
    ON DUPLICATE KEY UPDATE volume = volume + 1;

(если строка новая, то установим два значения, а если старая - просто инкрементируем значение столбца volume для данной строки)

В секции UPDATE можно указать несколько строк через запятую.

Если в случае совпадения ключей, вы не хотите выполнять никаких действий -- см. этот пример.