Maison >base de données >tutoriel mysql >Comment puis-je effectuer plusieurs mises à jour d'enregistrements dans une seule requête MySQL ?
Mettre à jour efficacement plusieurs enregistrements MySQL
Bien que la fonctionnalité INSERT multi-lignes de MySQL soit largement connue, sa capacité à mettre à jour plusieurs enregistrements simultanément est souvent négligée. Cette technique améliore considérablement l'efficacité par rapport à l'exécution d'instructions UPDATE individuelles.
Considérez cet exemple de tableau :
<code>Name id Col1 Col2 Row1 1 6 1 Row2 2 2 3 Row3 3 9 5 Row4 4 16 8</code>
Au lieu de plusieurs instructions UPDATE distinctes comme celles-ci :
<code>UPDATE table SET Col1 = 1 WHERE id = 1; UPDATE table SET Col1 = 2 WHERE id = 2; UPDATE table SET Col2 = 3 WHERE id = 3; UPDATE table SET Col1 = 10 WHERE id = 4; UPDATE table SET Col2 = 12 WHERE id = 4;</code>
Vous pouvez obtenir le même résultat avec une seule requête plus efficace :
<code>INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12) ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);</code>
Cela exploite la clause ON DUPLICATE KEY UPDATE
. Si une ligne avec le id
spécifié existe déjà, les valeurs Col1
et Col2
correspondantes sont mises à jour. Si la ligne n'existe pas, une nouvelle ligne est insérée. Cette approche est considérablement plus rapide et plus respectueuse des ressources que l'exécution de plusieurs requêtes UPDATE individuelles.
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!