Se você quiser fazer isso em uma única instrução (parece o que você quer), eu recomendaria usar o
INSERT ... ON DUPLICATE KEY UPDATE
sintaxe, como segue:INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
O
INSERT
inicial A instrução será executada se não houver nenhum registro existente com o valor de chave especificado (chave primária ou exclusiva). Se já existir um registro, o seguinte UPDATE
declaração (someothervalue = 3
) É executado. Isso é suportado em todas as versões do MySQL. Para obter mais informações, consulte a página Manual de referência do MySQL para
INSERT ... ON DUPLICATE KEY UPDATE