Échanger les valeurs de colonne dans MySQL sans modifier la structure de la table
Question :
Puis-je échanger les valeurs dans deux colonnes d'une table MySQL sans modifier la structure de la table ? Renommer les colonnes n'est pas une option en raison des restrictions d'autorisations des utilisateurs.
Réponse :
Oui, il est possible d'échanger les valeurs des colonnes dans MySQL sans modifier la structure de la table en utilisant une requête de mise à jour. Voici trois méthodes :
Méthode 1 :
UPDATE table SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
Cette méthode utilise une variable temporaire pour conserver la valeur d'une colonne pendant la mise à jour. Cela nécessite que les deux colonnes aient des valeurs non NULL.
Méthode 2 :
UPDATE table SET x=(@temp:=x), x = y, y = @temp;
Cette méthode est considérée comme plus élégante et gère à la fois les valeurs NULL et non NULL. .
Méthode 3 :
UPDATE table s1, table s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
Cette méthode utilise une auto-jointure pour échanger les valeurs des colonnes, ce qui la rend adaptée aux tables avec des clés primaires. Il gère également les valeurs NULL.
Remarque :
Chaque méthode a ses propres avantages et limites. Choisissez la méthode qui correspond le mieux à vos besoins spécifiques et aux caractéristiques de vos données.
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!