Inverser deux colonnes d’une table MySQL
Il peut arriver pour une raison ou une autre de vouloir inverser deux colonnes d’une table MySQL. Plutôt que de s’embêter à créer des champs ou des tables supplémentaires pour effectuer la modification, il est possible dans certains cas de résoudre ce problème en une requête. Le seul problème, et il est de taille j’en conviens, est qu’il faut que les deux colonnes soit du même type. Il n’est pas possible d’inverser un champ de type INT avec un de type CHAR par exemple car la requête permute les données mais ne touche pas à la structure de la table. Si la structure de votre table vous le permet, ce petit bout de code devrait pas mal vous simplifier la vie (N’oubliez pas de faire une sauvegarde avant !!)
Prenons un exemple si cette requête n’est pas très claire… Voici une table ‘users’ :
On voudrait inverser le contenu des colonnes ‘name’ et ‘email’. On tape la requête magique en remplaçant les variables par les entêtes des colonnes qui nous intéressent :
Et voilà, on arrive bien au résultat escompté !
Il ne reste plus qu’à inverser le nom des colonnes (à la main ou à coup d’ALTER … CHANGE pour les plus courageux). L’opération est très rapide, j’ai fais un test avec 1000 enregistrements et j’obtiens :
Voilà, j’ai récupéré cette astuce sur http://www.rngtng.com/2009/06/24/mysql-how-to-swap-entires-of-two-columns-with-just-one-query/
Laisser un commentaire
Articles au hasard
-
Contrôleur de domaine Samba sur Debian ETCH
-
Inverser deux colonnes d'une table MySQL
-
Installer PEAR avec Wampserver 2.1
-
Quelques fonctions pratiques en PHP
-
L'autocomplétion avec sfWidgetFormJQueryAutoc...
Articles par catégorie
- Administration réseau (6)
- Base de données (1)
- MySQL (1)
- Développement Web (7)
- HTML et CSS (1)
- Javascript (3)
- PHP (6)
Sondage
