De nombreux développeurs exécutent encore une requête pour vérifier si un champ est présent dans une table, puis exécutent une requête d'insertion ou de mise à jour en fonction du résultat de la première requête. Essayez d'utiliser la syntaxe ON DUPLICATE KEY, c'est beaucoup plus rapide et mieux puis exécutant 2 requêtes. Plus d'informations peuvent être trouvées ici
si vous voulez garder la même valeur pour c vous pouvez faire une mise à jour avec la même valeur
la différence entre 'remplacer' et 'sur clé en double' :
si votre table n'a pas de clé primaire ou de clé unique, le remplacement n'a aucun sens.
Vous pouvez également utiliser les VALUES
pour éviter d'avoir à spécifier deux fois les valeurs réelles. Par exemple. au lieu de
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=6;
vous pouvez utiliser
INSERT INTO table (a,b,c) VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=VALUES(c);
Où VALUES(c)
sera évalué à la valeur spécifiée précédemment (6).