Si desea hacer esto en una sola declaración (suena como lo que desea), recomendaría usar INSERT ... ON DUPLICATE KEY UPDATE
sintaxis, como sigue:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
El INSERT
inicial La instrucción se ejecutará si no existe un registro con el valor de clave especificado (ya sea clave principal o única). Si ya existe un registro, el siguiente UPDATE
sentencia (someothervalue = 3
) se ejecuta.
Esto es compatible con todas las versiones de MySQL. Para obtener más información, consulte la página Manual de referencia de MySQL para INSERT ... ON DUPLICATE KEY UPDATE