requête SQL REPLACE

requête SQL REPLACE - SQL/NoSQL - Programmation

Marsh Posté le 15-09-2004 à 19:05:36    

Bonjour,
 
je précise tout de suite que mes connaissances techniques ne sont pas très dévelopées  :o  
 
j'ai un petit problème dans une base de données sql
en fait dans presque 200.000 enregistrements j'ai ceci :

Code :
  1. <!--QuoteBegin--pseudo+date mois 2004,
  2. XX:XX>


suivi de messages divers
 
et que j'aimerais que ca se transforme en ceci :

Code :
  1. <!--QuoteBegin-->


avec le reste du message toujours présent derrière
 
en gros ma requête doit donc ressembler à un truc du genre :

Code :
  1. UPDATE posts SET post = REPLACE(post,"<!--QuoteBegin--pseudo+date mois année-->","<!--QuoteBegin-->" );


 
Mais comment est-ce que je déclare la partie "joker"? la partie pseudo et date en gros quoi?
 
si vous avez une idée  :jap:  
 
 

Reply

Marsh Posté le 15-09-2004 à 19:05:36   

Reply

Marsh Posté le 15-09-2004 à 20:24:02    

UPDATE posts SET post = '<!--QuoteBegin-->' WHERE post like '<!QuoteBegin--%>';

Reply

Marsh Posté le 15-09-2004 à 20:35:26    

merci pour la réponse
par contre, je viens de tester et ca trouve aucun enregistrement concerné :??:
 

Reply

Marsh Posté le 15-09-2004 à 21:31:29    

c'est quoi le type de ton champ post ?
varchar ou text ? il y a plusieurs lignes dans un enregistrements ou suelement <!--QuoteBegin--pseudo+date mois 2004--> sur une ligne ?

Reply

Marsh Posté le 15-09-2004 à 23:22:29    

surfacing a écrit :

c'est quoi le type de ton champ post ?
varchar ou text ? il y a plusieurs lignes dans un enregistrements ou suelement <!--QuoteBegin--pseudo+date mois 2004--> sur une ligne ?


 
c'est text comme type

Reply

Marsh Posté le 16-09-2004 à 12:21:56    

en fait ce sont les enregistrements des posts d'un forum  :o

Reply

Marsh Posté le 16-09-2004 à 14:00:42    

tu aurais pas fait un bete copier coller ?
Si oui la bonne synthaxe
 
UPDATE posts SET post = '<!--QuoteBegin-->' WHERE post like '<!--QuoteBegin--%>';


Message édité par Sebastien le 16-09-2004 à 14:01:18
Reply

Marsh Posté le 16-09-2004 à 14:41:40    

ah oui j'avais oublié deux --  :whistle:  
 
ca me modifies quelques enregistrements (une dizaine) mais il reste toujours des milliers de
 

Code :
  1. <!--QuoteBegin--pseudo date>';


 
 :heink:  

Reply

Marsh Posté le 16-09-2004 à 14:44:42    

en fait les quote sont comme ca :

Code :
  1. <!--QuoteBegin--mr potato+jeudi 09 septembre 2004, 18:51-->


 
est-ce que la virgule peut changer quelque chose?

Reply

Marsh Posté le 16-09-2004 à 14:44:51    

au pire essaye avec  
like '%QuoteBegin%'
 
ou
left(post,14) = '<!--QuoteBegin'


Message édité par Sebastien le 16-09-2004 à 14:46:15
Reply

Marsh Posté le 16-09-2004 à 14:44:51   

Reply

Marsh Posté le 16-09-2004 à 14:49:47    

Sebastien a écrit :

au pire essaye avec  
like '%QuoteBegin%'
 
ou
left(post,14) = '<!--QuoteBegin'


 
quand je fais ça ca modifie bien les posts mais ca efface le contenu du message après  :whistle:


Message édité par zoran le 16-09-2004 à 14:50:03
Reply

Marsh Posté le 16-09-2004 à 14:57:15    

Un truc pas mal hardcore mais bon  ^^  

Code :
  1. UPDATE posts SET post = concat(
  2. '<!--QuoteBegin',
  3. RIGHT( post, LENGTH(post) - LENGTH(SUBSTRING_INDEX(post,'-->', 1))))
  4. where left(post,14) = '<!--QuoteBegin'


Message édité par Sebastien le 16-09-2004 à 15:00:26
Reply

Marsh Posté le 16-09-2004 à 15:11:10    

Sebastien a écrit :

Un truc pas mal hardcore mais bon  ^^  

Code :
  1. UPDATE posts SET post = concat(
  2. '<!--QuoteBegin',
  3. RIGHT( post, LENGTH(post) - LENGTH(SUBSTRING_INDEX(post,'-->', 1))))
  4. where left(post,14) = '<!--QuoteBegin'




 
 
 :love:  
 
Merci ca a marché nickel [:augie]
 
 :jap:

Reply

Sujets relatifs:

Leave a Replay

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