enlever le " de "34353


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

enlever le " de "34353

Message le Lun Oct 04, 2010 16:15

Bonjour,

dans 10% de ma table, le champ id est "10000 au lieu de 10000.

Je cherche donc à enlever automatiquement le ".

Comment faire ?


Schwarzer Stern
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 352
Inscription: 16 Mai 2010

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 16:24

Salut,
Tu cherches à l'enlever lors du traitement ou juste exécuter une fois un script qui virera tous les " ?


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 16:34

Salut,

Par exemple,

je fais un select * where id=12345 from table
Or dans ma table, id="12345
Donc, la requete ne me trouvent rien.

Je cherche donc une requete sql qui va me virer tous les " devant l'id


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8575
Inscription: 23 Nov 2005

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 16:49

Mais tes id, dans ta base, ce sont des champs de type varchar ou text ? Pas des numériques ?

Le mieux à faire est de retraiter en amont, lors de la création des entrées dans ta base, pour ne plus avoir ce genre de chose. Ca sent fortement le problème de concaténation lors de l'insert.

Une fois modifié tes ordres d'update et d'insert, il ne te restera plus qu'à faire un replace dans la base de donnée pour supprimer toute occurrence du caractère " dans ton champ id.


Schwarzer Stern
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 352
Inscription: 16 Mai 2010

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 16:55

Et si tu fais un select * from table where id = '12345' or id = '"12345' from table ?
Sinon il suffit de sélectionner toutes les entrées ou id like '"%' mais après à part une requête "update" par entrée (ce qui risque d'être un peu lourd) je vois pas (il y a une solution avec mysql 5, les fonctions RIGHT et char_length mais je n'utilise pas, désolé)


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 17:17

Si tu veux tous les remplacer tu fais un UPDATE REPLACE, et tu passes ton champ en INT car là il doit être en varchar et tu dois avoir un gros problème de sécu.

Code: Tout sélectionner
UPDATE table SET id = REPLACE (id, '"', '');


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: enlever le " de "34353

Message le Lun Oct 04, 2010 17:18

Oui je sais ya un problème à la base que je vais pouvoir rectifier que dans 15 jour, donc d'ici là, je cherche une solution.

Pour schwarzer, oui mettre un OR j'y ai pensé mais je trouve ça un peu barbare :D.

Mais si je fais un SELECT trim(id), ville, dpt......
Ca me transforme "12345 en 12345 le trim ?

Bon le trim ne fonctionne, je me suis trompé de fonction. Je me suis dirigé vers le OR mais j'ai un gros soucis de concaténation.
ce que j'essaye de faire: where code="$code
J'ai traduis par
Code: Tout sélectionner
WHERE code='\"'.'".$id_game."'""
mais non


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités