Maison > base de données > tutoriel mysql > Comment puis-je effectuer plusieurs mises à jour d'enregistrements dans une seule requête MySQL ?

Comment puis-je effectuer plusieurs mises à jour d'enregistrements dans une seule requête MySQL ?

Patricia Arquette
Libérer: 2025-01-21 20:13:46
original
189 Les gens l'ont consulté

How Can I Perform Multiple Record Updates in a Single MySQL Query?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal