Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2835 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL 4.1] remplacer en masse une valeur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL 4.1] remplacer en masse une valeur

n°1311017
Calamarpow​aaah
Mein Gott !
Posté le 21-02-2006 à 21:40:42  profilanswer
 

Hello,
 
J'ai un petit souci avec mon forum IPB, voila j'ai upgradé et le lien des émoticons à changé, l'ancien path était /forumv2/ et maintenant le path est /forum/
 
Pour les anciens liens émoticons dans les messages je peux les retrouver dans la base avec cette recherche :
 
SELECT `post`  
FROM `ibf_posts`  
WHERE `post` LIKE CONVERT( _utf8 '%forumv2%'
USING latin1 )  
COLLATE latin1_swedish_ci
LIMIT 0 , 30
 
Mais comment modifier la requete pour que %forumv2% devienne %forum% ? Je suis pas formé à SQL.  :cry:  
 
Merci du coup de main !


Message édité par Calamarpowaaah le 22-02-2006 à 05:29:41
mood
Publicité
Posté le 21-02-2006 à 21:40:42  profilanswer
 

n°1311084
nargy
Posté le 21-02-2006 à 23:40:17  profilanswer
 

J ai aucune idée de la BDD utilisée, mais tu devrais essayer quelquechose comme:
UPDATE `ibf_posts`  
SET `post`=strreplace(`post`,CONVERT( _utf8 'forumv2'
USING latin1 ), CONVERT( _utf8 'forum'
USING latin1 ))
WHERE `post` LIKE CONVERT( _utf8 '%forumv2%'
USING latin1 )  
COLLATE latin1_swedish_ci
LIMIT 0 , 1;
 
La plupart de BDD ont une fonction de remplacement de motifs, essaye strreplace ou stringreplace? Vérifie tout de même la syntaxe dans la doc., et vérifie que seuls les champs désirés sont changés.

n°1311096
Calamarpow​aaah
Mein Gott !
Posté le 22-02-2006 à 00:02:04  profilanswer
 

merci, il me dit que la syntax n'est pas bonne (c'est du MySQL 4.1), ce qu'il me dit :
 
'(`post`,CONVERT( _utf8 'forumv2'  
USING latin1 ), CONVERT( _utf8 'forum'  
USIN' at line 2
 
j'ai essayé avec "stringreplace", il me fait pareil :/


Message édité par Calamarpowaaah le 22-02-2006 à 00:11:34
n°1311113
nargy
Posté le 22-02-2006 à 00:39:34  profilanswer
 

Code :
  1. mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
  2.         -> 'WwWwWw.mysql.com'


 
Plus d infos:
http://dev.mysql.com/doc/refman/4. [...] tions.html

n°1311128
Calamarpow​aaah
Mein Gott !
Posté le 22-02-2006 à 05:35:19  profilanswer
 

ok j'ai lu donc je fait  
 
SELECT REPLACE ('%forumv2%', 'forumv2', 'forum')
FROM  'ibf_posts'
WHERE 'post' LIKE ('%forumv2%')
 
Ca semble correcte ? (j'ose pas essayer peur de tout péter  :whistle: )
EDIT : bon ca marche pas  mais je sens qu'ya un truc qui colle pas, bon je cherche :/
 
EDIT 2 : ok j'ai trouvé ça donne ça :
 
SELECT REPLACE (
`post` ,
'forumv2',
'forum'
)
FROM `ibf_posts`  
LIMIT 0 ,
30  
 
Maintenant je dois faire un UPDATE pour que ça fonctionne.


Message édité par Calamarpowaaah le 22-02-2006 à 05:59:41
n°1311134
Calamarpow​aaah
Mein Gott !
Posté le 22-02-2006 à 06:30:22  profilanswer
 

Cool, bon j'ai réussi merci à tous :) :) :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL 4.1] remplacer en masse une valeur

 

Sujets relatifs
Problème avec richtextbox et mysql.Migration de binaire local dans table Mysql LONGBLOB
Problème de lenteur d'accès MySQLRécuperer la derniere valeur d'une table ?
problème valeur par defaut :(un peut d'aide pour lignes de commade mysql
[PHP] Resultat mysql automatiqueExport CSV d'une table MySQL pas si triviale que ça.
PB pour recupere lune valeur à partir dun sous formulaireprobleme Mysql / java
Plus de sujets relatifs à : [MySQL 4.1] remplacer en masse une valeur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR