Use
REPLACE
- funciona exatamente como INSERT, exceto que se uma linha antiga na tabela tiver o mesmo valor que uma nova linha para um índice PRIMARY KEY ou UNIQUE, a linha antiga será excluída antes que a nova linha seja inserida. 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)
Edit:Como você não pode usar REPLACE, outra opção é:definir índices de restrição para os dados da tabela (chave primária, exclusividade) e usar INSERT IGNORE
INSERT IGNORE INTO table_name
SET name = 'phill',
value = 'person',
id = 12345;