Maison >base de données >tutoriel mysql >Comment mettre à jour efficacement plusieurs lignes MySQL avec des valeurs différentes ?
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>
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>
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!