Maison > Article > base de données > Comment mettre à jour ou insérer efficacement des enregistrements dans MySQL en fonction de leur existence ?
MySQL : mise à jour ou insertion d'enregistrements basés sur l'existence
Lorsque vous utilisez une base de données, il est courant de rencontrer des scénarios dans lesquels vous devez soit mettre à jour ou insérer des enregistrements en fonction de leur existence. Si vous travaillez avec PHP et MySQL, cette question se pose souvent.
Dans ce contexte, la requête d'origine tente de fusionner les instructions update et insert en utilisant la syntaxe IF EXISTS. Cependant, ce n'est pas l'approche la plus efficace.
Pour obtenir la fonctionnalité souhaitée, vous devez envisager d'utiliser la syntaxe INSERT ... ON DUPLICATE KEY UPDATE. Voici la syntaxe correcte :
INSERT INTO <table> (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...
Avec cette syntaxe, vous pouvez effectuer à la fois les opérations INSERT et UPDATE dans une seule requête. Si l'enregistrement n'existe pas (en fonction de la clé primaire ou de l'index unique), il sera inséré. Si l'enregistrement existe déjà, il sera mis à jour avec les valeurs fournies.
Il est important de noter que la valeur des lignes concernées pour chaque ligne sera :
Cette approche est plus efficace et plus facile à maintenir que de gérer les opérations de mise à jour et d'insertion séparément.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!