Użyj REPLACE
- działa dokładnie tak jak INSERT, z tym wyjątkiem, że jeśli stary wiersz w tabeli ma taką samą wartość jak nowy wiersz dla PRIMARY KEY lub UNIQUE indeksu, stary wiersz jest usuwany przed wstawieniem nowego.
http://dev.mysql.com/doc/refman/5.0 /pl/zamień.html
-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345)
Edycja:Ponieważ nie możesz użyć opcji REPLACE, inną opcją jest:ustawienie indeksów ograniczeń dla danych tabeli (klucz podstawowy, unikatowość) i użycie INSERT IGNORE
INSERT IGNORE INTO table_name
SET name = 'phill',
value = 'person',
id = 12345;