Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[MySQL] inversion de colonnes

chmanu, le mercredi 15 septembre 2004 à 10:39:05
Bonjour,
je cherche à mettre une table à jour : les données ont mal été rentrées : deux champs ont été inversés pour certaines d'entre elle.
J'aimerai donc les remettre correctement, en faisant un truc du genre :

update <ma_table> set <col1>= <col2>, <col2>= <col1> where <mes_conditions>

Or cette requete ne marche pas. Faut il que je passe par une table intermédiaire dans laquelle je fait un insert ... select ?

Merci pour votre aide.

Chmanu
Répondre à chmanu  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
JSS, le mercredi 15 septembre 2004 à 10:44:05
tu peux nommer les variables il me semble.

Bon courage !

JSS
Répondre à JSS

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jack971, le mercredi 15 septembre 2004 à 14:12:44
Le seul moyen que je connaisse c'est de modifier les valeurs directement. update "table" set "colonne" = "valeur" where "condition"; as tu beaucoup de valeurs a modifier?
http://majorinfo.ifrance.com
Répondre à jack971

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jisisv, le mercredi 15 septembre 2004 à 22:47:04
Hello,
Quelques remarques:
l'INFORMATION contenue dans ta table ne dépend pas de l'ordre dans lequel tu as défini tes champs. Evidemment c'est gênant dans le cas où tu as des relations vers d'autres tables.
A toi de construire tes requêtes sans utiliser les jokers, de définir les foreign keys correctement.
Evidemment une table définie correctement au départ sera plus facile à manipuler par la suite.
Sinon tu peux utiliser ALTER TABLE pour renommer tes colonnes
http://dev.mysql.com/doc/mysql/en/ALTER_TABLE.html

exemple:
mysql> create table brol (f1 char(5), f2 char(5));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into brol values('abcde', 'edcba');
Query OK, 1 row affected (0.00 sec)

mysql> select * from brol;
+-------+-------+
| f1 | f2 |
+-------+-------+
| abcde | edcba |
+-------+-------+
1 row in set (0.01 sec)

mysql> alter table brol change column f1 tmp char(5);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> alter table brol change column f2 f1 char(5);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> alter table brol change column tmp f2 char(5);
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from brol;
+-------+-------+
| f2 | f1 |
+-------+-------+
| abcde | edcba |
+-------+-------+
1 row in set (0.00 sec)

Toutes variations possibles.

Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
Répondre à jisisv

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
chmanu, le lundi 20 septembre 2004 à 13:56:31
En fait, la base à été correctement concu, seulement, l'apppli derriere a inversé les deux champs. et moi, j ai également rempli certains champs "à la main" avec un client SQL. donc parmi les données, certaines (les deux tiers environ, sur 300) sont inversée.
Le alter table agit uniquement sur la table. Je voudrais que cela agisse sur les données (d'ou le where <condition>).
Merci pour vos réponses en tout cas.

Chmanu
Répondre à chmanu

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jack971, le lundi 20 septembre 2004 à 14:05:55
ca te fais a peu pres 200 valeurs a modifier ! puisque tu programme, tu pourrai faire un petit programme qui prend les valeurs du champ 2 a partir d'un certains n° de clé primaire puis les copie dans le champs 1. Ca devrais pas être trop long.
Répondre à jack971

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 chmanu, le lundi 20 septembre 2004 à 15:14:31
oui, je peux. Et c'est vrai que ca ne sera pas trop long.
Pour l'instant, ce n est pas urgent. mais si en une requete ca avait été possible, j aurai préféré.
Mais apparemment non, donc je vais faire comme je l annonçais : je vais passer par une table intermédiaire.

Chmanu
Répondre à chmanu
Problème mysql_fetch_array (Résolu) Salut à tous, j'ai fais une requête et je veux afficher les résultats dans différentes colonnes d'un tableau... Voila ma requête : $carac = mssql_query("SELECT nml_variable, unite, iso, afnor, nolcl*lcl AS Lcl, noaim*aim AS Aim, noucl*ucl AS... www.commentcamarche.net/forum/affich-1622775-probleme-mysql-fetch-array
[mysql] Lier 2 tables (Résolu) Bonjour, je suis en train de créer un prg pour repertorier des chassis de carte de reseaux (câble), pou cela jai 2 tables (equipements et cartes): carte IS_C description serial HW_version SW_version equipements ID_E IP marque nom voila mes deux table... www.commentcamarche.net/forum/affich-3015443-mysql-lier-2-tables
SQL - Tri Tri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou... www.commentcamarche.net/contents/sql/sqltri.php3
Remplir une ligne ou une colonne avec une suite logiqueVous devez créer un tableau avec le nom des mois dans une ligne ou une colonne : - vous inscrivez au moins 2 mois consécutifs : par exemple, janvier en B4 et février en B5 - vous pointez sur B4, puis en maintenant shift enfoncé, vous pointez B5. ... www.commentcamarche.net/faq/sujet-8654-remplir-une-ligne-ou-une-colonne-avec-une-suite-logique
Installation rapide de LAMP (Apache+MySql+php) sous LinuxLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL... www.commentcamarche.net/faq/sujet-7971-installation-rapide-de-lamp-apache-mysql-php-sous-linux
Réinitialiser le mot de passe root de MySQLQue ce soit lors de la première installation ou après la perte du mot de passe principal de MySQL, il est nécessaire de pouvoir modifier le mot de passe administrateur (root) de MySQL. Vous avez perdu le mot de passe root de MySQL ? Pour pouvoir... www.commentcamarche.net/faq/sujet-9773-reinitialiser-le-mot-de-passe-root-de-mysql
[PHP/MySQL] Faire la moyenne d'un colonne ? (Résolu)Salut à tous ! J'ai un problème pour faire la moyenne d'un colonne d'une table MySQL en PHP. Je ne sais pas trop comment utiliser la fonction AVG(). Quelqu'un pourrait-il m'aider SVP ? A+ Nico www.commentcamarche.net/forum/affich-1345371-php-mysql-faire-la-moyenne-d-un-colonne
Mysql:comment changer le nom d'une colonne? (Résolu)Bonjour, je voudrais savoir quelle est la requéte en mySQL pour changer le nom d'une colonne ? Merci d'avance à tous. www.commentcamarche.net/forum/affich-7512739-mysql-comment-changer-le-nom-d-une-colonne
Mysql - conversion integer en date (Résolu)bonjour, j'ai un petit dépannage a effectuer sur une appli en base mysql. Je dois rechercher les enregistrements effectués pour une date précise dans une table. J'ai une colonne date mais au format int(10) unsigned. J'ai essaye ( mal ?)... www.commentcamarche.net/forum/affich-1805861-mysql-conversion-integer-en-date
Importer et exporter des données sous MySQLImportation et exportation Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant... www.commentcamarche.net/contents/mysql/mysqlimport.php3
MySQL - Installation sous WindowsPrésentation de MySQL MySQL est un Système de Gestion de Bases de Données (SGBD) fonctionnant sous Linux et Windows. Depuis la version 3.23.19, MySQL est sous Licence GPL (aussi bien sous Linux que Windows), ce qui signifie qu'il peut être utilisé... www.commentcamarche.net/contents/mysql/mysqlinst.php3
Administration de MySQLLa base de données mysql Les Système de Gestion de Bases de Données tels que MySQL permettent de manipuler facilement et avec beaucoup de souplesse un très important volume de données. Toutefois, aussi robuste soit MySQL, il peut être intéressant... www.commentcamarche.net/contents/mysql/mysqladmin.php3