Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi ma mise à jour MySQL MyISAM avec CASE WHEN échoue-t-elle et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2024-11-27 18:01:11
original
652 Les gens l'ont consulté

Why Does My MySQL MyISAM UPDATE with CASE WHEN Fail and How Can I Fix It?

Mise à jour des tables MySQL MyISAM à l'aide de CASE WHEN/THEN/ELSE

Q : Lorsque vous tentez de mettre à jour des lignes spécifiques dans une grande table MyISAM à l'aide d'un CASE, la requête consomme trop de CPU et met à jour toutes les lignes, y compris celles non spécifiées. Que peut-on faire pour limiter la mise à jour aux lignes prévues ?

R : Le problème survient lorsque l'instruction CASE n'inclut pas de clause ELSE. Par défaut, les lignes non explicitement mentionnées dans l'instruction CASE se voient attribuer des valeurs NULL. Cela entraîne des mises à jour inutiles sur l'ensemble de la table.

Pour résoudre ce problème, ajoutez une clause ELSE à l'instruction CASE, en lui attribuant la valeur existante de la colonne uid. Cela empêchera la mise à jour d'affecter les lignes non spécifiées dans les clauses WHEN.

De plus, incluez une clause WHERE pour spécifier explicitement les lignes qui doivent être mises à jour. Cela garantit que seules les lignes souhaitées sont ciblées.

Exemple :

UPDATE `table` SET `uid` = CASE
    WHEN id = 1 THEN 2952
    WHEN id = 2 THEN 4925
    WHEN id = 3 THEN 1592
    ELSE `uid`
    END
WHERE id IN (1, 2, 3)
Copier après la connexion

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