Comment modifier en masse des données dans une table MySQL ?

Comment modifier en masse des données dans une table MySQL ? - SQL/NoSQL - Programmation

Marsh Posté le 04-04-2003 à 09:35:07    

J'ai une table MySQL qui contient environ 3000 lignes ...
 
Admettons que j'ai une colonne "Titre", dans cette colonne, certaines contiennent "AAAAAA" d'autres "BBBBB" etc...
 
Comment faire pour changer en 1 seule fois tous les "JJJJJ" par "MMMMM" par exemple ?
 
J'ai essayé plusieurs trucs avec ALTER mais bon ... je suis pas super doué en MySQL ... je me debrouille mais bon...
 
Merci :)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 09:35:07   

Reply

Marsh Posté le 04-04-2003 à 09:38:59    

pour modifier les enregistrements, c'est plutot un UPDATE qu'il te faudra.
le ALTER est pour modifier la table (ajouter une colonne, modifier un nom de colonne, etc)


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 04-04-2003 à 09:39:36    

Ah oui tiens, j'avais oublié le UPDATE, je regarde de ce coté la :jap:


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 09:40:36    

par exemple (à vérifier hein)
 
 
UPDATE matable SET monchamp = REPLACE('JJJJJ','MMMMMM',monchamp);
 
 
et hop sur toute la table les JJJJJ seront remplacés par MMMMMM dans le champ monchamp


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 04-04-2003 à 09:42:29    

D'apres ce que je viens de trouver ça serait un truc dans le genre :
 
UPDATE nomtable SET Titre=MMMMM WHERE Titre=JJJJJ
 
C juste ?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 09:42:54    

Sh@rdar a écrit :

par exemple (à vérifier hein)
 
 
UPDATE matable SET monchamp = REPLACE('JJJJJ','MMMMMM',monchamp);
 
 
et hop sur toute la table les JJJJJ seront remplacés par MMMMMM dans le champ monchamp


 
 
Grillaid :D
 
Ok, je teste ça tt de suite, merci :)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 09:50:59    

:fou:  :fou:  
 
 
J'ai testé ... resultat : J'ai des "MMMMMM" PARTOUT !!! :cry:  
 
J'ai meme pas pensé à faire un DUMP de ma table avant ... résultat : 3000 enregistrement foutus en l'air !! :cry:
 
Bon ben ya pu qu'a recommencer ...
 
Une chose est sure Sh@rdar : Ton truc marche pas :(
 
Tant pis, spagrave !
 
Edit : Dommage qu'il n'y ai pas un bouton "ANNULER" :D


Message édité par Dj YeLL le 04-04-2003 à 09:52:13

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 09:54:29    

fais la requête inverse
UPDATE matable SET monchamp = REPLACE('MMMMMM','JJJJJ',monchamp);  


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 04-04-2003 à 10:04:26    

Ok je vais essayer ...


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 10:09:00    

j'ai bien écrit qu'il fallait vérifier hein...
 
 
je me suis gouré de syntaxe.. oups
 
 
UPDATE matable SET monchamp = REPLACE(monchamp,'JJJJJ','MMMMMM';);  
 
 


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 04-04-2003 à 10:09:00   

Reply

Marsh Posté le 04-04-2003 à 10:11:43    

Sh@rdar a écrit :

j'ai bien écrit qu'il fallait vérifier hein...
 
 
je me suis gouré de syntaxe.. oups
 
 
UPDATE matable SET monchamp = REPLACE(monchamp,'JJJJJ','MMMMMM';);  
 
 
 


 
Je vais tester ...
 
P.S. : Urd-sama -> Ca fait pareil ta methode :)


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 10:15:09    

malheureusement oui, tes anciennes données sont paumées  :sweat:


---------------
.: Clône de Drasche .:. Ebichuleys .:. Avec l'Aloe Vera je fais de beaux cacas [:dawa] .: www.oserselancer.com :.
Reply

Marsh Posté le 04-04-2003 à 10:16:18    

fallait faire un dump quand même..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 04-04-2003 à 10:17:54    

Sh@rdar a écrit :

j'ai bien écrit qu'il fallait vérifier hein...
 
 
je me suis gouré de syntaxe.. oups
 
 
UPDATE matable SET monchamp = REPLACE(monchamp,'JJJJJ','MMMMMM';);  
 
 
 


 
Ca marche tjs pas ... cette fois ci dans la colonne "monchamp" il me remplace tout par ... "monchamp" :/
 
Sinon pour le fait d'avoir perdu mes données, c pas tres grave, j'ai les données ds un tableau Excel ... c assez rapide a dumper en CVS.
 
 
Edit : Bon ben au final g tjs pas la solution ... C bizarre, je pensais pas que ça serait si difficile que ça :??:


Message édité par Dj YeLL le 04-04-2003 à 10:18:33

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 10:37:32    

Bon ben vu que de toute façon il faut tout que je reimporte, je vais faire les modifs directement sous Excel


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 10:37:55    

bizzare, ça devrait fonctionner en principe....
 
tu veux remplacer tous les caractères J par M ou uniquement les JJJJ par MMMM ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 04-04-2003 à 18:22:44    

Sh@rdar a écrit :

bizzare, ça devrait fonctionner en principe....
 
tu veux remplacer tous les caractères J par M ou uniquement les JJJJ par MMMM ?


 
 
Tous les JJJ par MMMM.
 
Admettons que ça soit des genres de films :
 
Il y a 3 lignes ACTION, 5 lignes AVENTURES etc...
 
Il faudrait changer toutes les lignes AVENTURES par POLICIER par exemple ...


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 18:29:06    

En SQL simple, ça devrait marcher...
 
    UPDATE nomtable SET Titre=MMMMM WHERE Titre=JJJJJ
 
Sinon renseigne toi sur la fonction REPLACE de MySQL !! (en général, on se renseigne avant d'essayer, surtout si on a pas envie de perdre ses données)

Reply

Marsh Posté le 04-04-2003 à 19:39:10    

Sh@rdar a écrit :


UPDATE matable SET monchamp = REPLACE('JJJJJ','MMMMMM',monchamp);
 


 
C'est quoi cette horreur ? :D  
un WHERE c'est pas plus propre et plus rapide ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 04-04-2003 à 20:14:25    

jodalton a écrit :

En SQL simple, ça devrait marcher...
 
    UPDATE nomtable SET Titre=MMMMM WHERE Titre=JJJJJ
 
Sinon renseigne toi sur la fonction REPLACE de MySQL !! (en général, on se renseigne avant d'essayer, surtout si on a pas envie de perdre ses données)


 
C'est ce que j'ai deja écrit plus haut :
 

Dj YeLL a écrit :

D'apres ce que je viens de trouver ça serait un truc dans le genre :
 
UPDATE nomtable SET Titre=MMMMM WHERE Titre=JJJJJ
 
C juste ?


 
Mais apparement ça marche pas non plus. Ca ne me changeait rien du tout en faisant ça. Ca restait tel quel ... pourtant c ce qui me semblait le + logique ... Je reessayerais Lundi... WeekEnd powa ! :D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 04-04-2003 à 20:16:44    

ouais enfin mettre les chaînes entre '...' c'est parfois pas mal non plus :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 04-04-2003 à 20:23:58    

antp a écrit :

ouais enfin mettre les chaînes entre '...' c'est parfois pas mal non plus :D


 
G oublié de le noter ici, mais c ce ke je faisais ...


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed