[MySQL] Requête d'update particulière

Requête d'update particulière [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 09-06-2005 à 22:24:06    

Salut,
 
je ne suis pas très à l'aise en SQL autrement qu'avec des rquêtes mal foutues.
 
J'explique mon problème : Je dois corriger une table dans laquelle j'ai eu des insertions buggées.
un champs contient un id numérique pour lequel un '?' s'est glissé à la fin. Cela est génant car corrompt la structure des données.
 
J'aimerai savoir s'il est possible de réaliser avec une requête SQL une correction :
remplacer touts les ID par leur valeur numérque auquel est enlevé le '?' ?
 
Par exemple 123456789987456321? devient 123456789987456321
 
Je n'ai pas tellement de piste? en même temps, cela me fera apprendre :)
 
Merci beaucoup

Reply

Marsh Posté le 09-06-2005 à 22:24:06   

Reply

Marsh Posté le 09-06-2005 à 22:35:12    

Peut être quelque chose dans le genre :
 
UPDATE table  
SET id = substr(id, 1, length(id)-1)
WHERE id LIKE '%?'
 [:figti]  
 
(faut voir comment il traite le " LIKE '%?' ", je crois que ? est un caractère spécial [:figti] )

Reply

Marsh Posté le 09-06-2005 à 22:37:34    

si ça marche pas, il suffit de mettre "where substr(id, length(id) - 1, 1) = '?' :)

Reply

Marsh Posté le 09-06-2005 à 22:43:27    

Je fait parfaitement un SELECT avec LIKE'%?%' ...
 
Je ne pensais pas du tout qu'un substr existe en SQL. Il faut que j'approfondisse ...

Reply

Marsh Posté le 09-06-2005 à 22:44:09    

Je vais essayer cela.
 
Merci

Reply

Marsh Posté le 09-06-2005 à 23:08:52    

Tip top
 
Merci ;)

Reply

Sujets relatifs:

Leave a Replay

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