Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour plusieurs lignes avec des valeurs différentes dans une seule requête MySQL ?

Comment puis-je mettre à jour plusieurs lignes avec des valeurs différentes dans une seule requête MySQL ?

Patricia Arquette
Libérer: 2025-01-17 11:17:14
original
219 Les gens l'ont consulté

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

Mise à jour efficace de plusieurs lignes MySQL avec des valeurs variables

MySQL propose plusieurs méthodes pour mettre à jour plusieurs lignes avec des valeurs distinctes dans une seule requête. Bien que les instructions IF puissent fonctionner, l'instruction CASE fournit une solution plus concise et plus lisible, en particulier lorsqu'il s'agit de plusieurs conditions.

Considérons un scénario dans lequel nous devons mettre à jour la table table_users, en attribuant différentes valeurs cod_user en fonction des rôles d'utilisateur au sein d'un bureau spécifique. Une approche plus propre que l'utilisation de plusieurs IF déclarations est démontrée ci-dessous :

Cette requête utilise l'instruction CASE pour mettre à jour cod_user en fonction de user_rol :

<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
Copier après la connexion

Voici une répartition :

  • CASE déclaration : Cela gère avec élégance plusieurs conditions. Chaque clause WHEN vérifie une condition et, si elle est vraie, attribue la valeur cod_user correspondante.
  • Conditions multiples : L'instruction CASE gère efficacement les différents rôles des utilisateurs.
  • date mise à jour : Le champ date est mis à jour à « 12082014 » pour toutes les lignes correspondantes. N'oubliez pas d'ajuster le format de date (« AAAAMMJJ » dans cet exemple) pour qu'il corresponde aux paramètres de votre base de données.
  • Clause
  • WHERE : Ceci filtre la mise à jour pour affecter uniquement les lignes où user_rol est « étudiant », « assistant » ou « administrateur » et cod_office est « 17389551 ».

Cette méthode fournit une solution plus efficace et plus maintenable par rapport à l'utilisation de plusieurs UPDATE instructions individuelles ou de structures IF imbriquées complexes. L'instruction CASE améliore la lisibilité et simplifie la logique globale de la requête.

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