Использовать REPLACE
- работает точно так же, как INSERT, за исключением того, что если старая строка в таблице имеет то же значение, что и новая строка для PRIMARY KEY или UNIQUE индекса, старая строка удаляется перед вставкой новой строки .
http://dev.mysql.com/doc/refman/5.0/en/replace.html
-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345)
Редактировать: так как вы не можете использовать REPLACE, другой вариант: установить индексы ограничений для данных таблицы (первичный ключ, уникальность) и использовать INSERT IGNORE
INSERT IGNORE INTO table_name
SET name = 'phill',
value = 'person',
id = 12345;