Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour plusieurs lignes MySQL simultanément ?

Comment puis-je mettre à jour plusieurs lignes MySQL simultanément ?

DDD
Libérer: 2025-01-21 20:07:14
original
810 Les gens l'ont consulté

How Can I Update Multiple MySQL Rows Simultaneously?

MySQL : mettre à jour efficacement plusieurs lignes

Question : La mise à jour simultanée de plusieurs lignes MySQL est-elle possible ?

Réponse : Absolument ! La déclaration INSERT ... ON DUPLICATE KEY UPDATE fournit une solution efficace.

Exemple illustratif :

Disons que nous avons un tableau structuré comme suit et que nous devons appliquer plusieurs mises à jour :

Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8

Mises à jour requises :

  • 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;

Mise à jour consolidée utilisant INSERT ... ON DUPLICATE KEY UPDATE :

Au lieu de plusieurs UPDATE déclarations individuelles, nous pouvons obtenir le même résultat avec une seule requête plus efficace :

<code class="language-sql">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

Cette requête tente d'insérer de nouvelles lignes. Si une ligne avec le id spécifié existe déjà (en raison de la clé primaire ou d'un index unique sur id), la clause ON DUPLICATE KEY UPDATE prend effet, mettant à jour les valeurs Col1 et Col2 en fonction des valeurs fournies dans la clause VALUES(). Cette méthode améliore considérablement les performances par rapport à l'exécution de plusieurs UPDATE instructions 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal