Как в MySQL при наличии некоторых данных изменить их, а при отсутствии - добавить?
Зачастую возникают ситуации, когда нужно при наличии определенной строки в таблице в MySQL изменить ее, а при ее отсутствии - добавить. Обычно решают такую задачу в два приема: сначала проверяют, есть ли данные (SELECT с нужными условиями), а затем в зависимости от полученного результата либо изменяют их (UPDATE), либо добавляют (INSERT).
Конструкция получается достаточно трудоемкая.
В некоторых случаях бывает эффективнее использовать команду MySQL REPLACE. По синтаксису она эквивалентна INSERT.
Логика работы REPLACE такова: если в существующей строке есть поле, для которого построен индекс типа PRIMARY KEY или UNIQUE, с тем же значением, что и в новой строке, то старая строка удаляется, а новая - добавляется. Если строки с таким значением в указанном поле нет, то строка просто добавляется.