Maison > base de données > tutoriel mysql > Comment mettre à jour efficacement plusieurs lignes MySQL avec des valeurs différentes ?

Comment mettre à jour efficacement plusieurs lignes MySQL avec des valeurs différentes ?

Mary-Kate Olsen
Libérer: 2025-01-17 11:21:12
original
490 Les gens l'ont consulté

How to Efficiently Update Multiple MySQL Rows with Different Values?

Mettre à jour efficacement différentes valeurs des enregistrements MySQL multi-lignes

Présentation

La mise à jour de plusieurs lignes avec des valeurs différentes peut être difficile, en particulier avec des conditions WHERE complexes. Cet article vise à simplifier ce processus en expliquant en détail les deux méthodes les plus couramment utilisées : les requêtes multi-instructions et les mises à jour conditionnelles.

Méthode 1 : Requête multi-instructions

Les requêtes multi-instructions vous permettent d'exécuter plusieurs commandes UPDATE en une seule requête. Bien que cette méthode soit simple et directe, elle peut devenir lourde pour de grands ensembles de données. L'exemple que vous avez fourni peut être implémenté comme suit :

<code class="language-sql">UPDATE table_users
SET cod_user = '622057', date = '12082014'
WHERE user_rol = 'student' AND cod_office = '17389551';

UPDATE table_users
SET cod_user = '2913659', date = '12082014'
WHERE user_rol = 'assistant' AND cod_office = '17389551';

UPDATE table_users
SET cod_user = '6160230', date = '12082014'
WHERE user_rol = 'admin' AND cod_office = '17389551';</code>
Copier après la connexion

Méthode 2 : mise à jour conditionnelle à l'aide de l'instruction CASE

Les mises à jour conditionnelles vous permettent d'appliquer différentes valeurs à différentes lignes en fonction des conditions. L'exemple que vous avez fourni pourrait être reformulé comme suit :

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

Cette méthode est plus efficace que les requêtes multi-instructions, notamment dans le cas de grands ensembles de données. Il fournit également un moyen plus propre et plus clair de mettre à jour plusieurs lignes d'enregistrements.

Remarque :

Assurez-vous de stocker les dates dans un format cohérent et natif de la base de données pour éviter des problèmes potentiels.

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