Muchos desarrolladores aún ejecutan una consulta para verificar si un campo está presente en una tabla y luego ejecutan una consulta de inserción o actualización de acuerdo con el resultado de la primera consulta. Intente usar la sintaxis ON DUPLICATE KEY, esto es mucho más rápido y mejor. luego ejecutando 2 consultas. Se puede encontrar más información aquí
si desea mantener el mismo valor para c, puede hacer una actualización con el mismo valor
la diferencia entre 'reemplazar' y 'en clave duplicada':
si su tabla no tiene una clave principal o una clave única, la sustitución no tiene ningún sentido.
También puede utilizar los VALUES
función para evitar tener que especificar los valores reales dos veces. P.ej. en lugar de
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
puedes usar
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Donde VALUES(c)
evaluará al valor especificado previamente (6).