Comment modifier en masse des données dans une table MySQL ? - SQL/NoSQL - Programmation
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)
Marsh Posté le 04-04-2003 à 09:39:36
Ah oui tiens, j'avais oublié le UPDATE, je regarde de ce coté la
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
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 ?
Marsh Posté le 04-04-2003 à 09:42:54
Sh@rdar a écrit : par exemple (à vérifier hein) |
Grillaid
Ok, je teste ça tt de suite, merci
Marsh Posté le 04-04-2003 à 09:50:59
J'ai testé ... resultat : J'ai des "MMMMMM" PARTOUT !!!
J'ai meme pas pensé à faire un DUMP de ma table avant ... résultat : 3000 enregistrement foutus en l'air !!
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"
Marsh Posté le 04-04-2003 à 09:54:29
fais la requête inverse
UPDATE matable SET monchamp = REPLACE('MMMMMM','JJJJJ',monchamp);
Marsh Posté le 04-04-2003 à 10:04:26
Ok je vais essayer ...
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';
Marsh Posté le 04-04-2003 à 10:11:43
Sh@rdar a écrit : j'ai bien écrit qu'il fallait vérifier hein... |
Je vais tester ...
P.S. : Urd-sama -> Ca fait pareil ta methode
Marsh Posté le 04-04-2003 à 10:15:09
malheureusement oui, tes anciennes données sont paumées
Marsh Posté le 04-04-2003 à 10:16:18
fallait faire un dump quand même..
Marsh Posté le 04-04-2003 à 10:17:54
Sh@rdar a écrit : j'ai bien écrit qu'il fallait vérifier hein... |
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
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
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 ?
Marsh Posté le 04-04-2003 à 18:22:44
Sh@rdar a écrit : bizzare, ça devrait fonctionner en principe.... |
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 ...
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)
Marsh Posté le 04-04-2003 à 19:39:10
Sh@rdar a écrit : |
C'est quoi cette horreur ?
un WHERE c'est pas plus propre et plus rapide ?
Marsh Posté le 04-04-2003 à 20:14:25
jodalton a écrit : En SQL simple, ça devrait marcher... |
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 : |
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 !
Marsh Posté le 04-04-2003 à 20:16:44
ouais enfin mettre les chaînes entre '...' c'est parfois pas mal non plus
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 |
G oublié de le noter ici, mais c ce ke je faisais ...
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