JeuWeb - Crée ton jeu par navigateur
Remplacer plusieurs valeur en sql - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Remplacer plusieurs valeur en sql (/showthread.php?tid=4289)



Remplacer plusieurs valeur en sql - ne2sbeal - 18-08-2009

Bonjour,

Voilà j\'explique mon problème. J\'ai une table un peu comme ça :

Equipe1 | Equipe2| Equipe3|
---------------------------
X | Y | Z |
A | X | B |
X | X | Z |
F | G | X |

Je voudrais dans cette table remplacer la lettre X par le chiffre 1

Existe t-il une requete pour ça?

merci d\'avance


RE: Remplacer plusieurs valeur en sql - Yoda54 - 18-08-2009

Bonjour,

C'est effectivement faisable, il te suffit de faire un UPDATE de tes champs en utilisant la fonction IF de mysql.
Pour plus d'info sur la syntaxe: les fonctions de contrôle.


RE: Remplacer plusieurs valeur en sql - Findel - 18-08-2009

Ce qui donne appliqué à ton cas :

UPDATE table SET Equipe1 = IF(Equipe1='X', '1', Equipe1), Equipe2 = IF(Equipe2='X', '1', Equipe2), Equipe3 = IF(Equipe3='X', '1', Equipe3);


RE: Remplacer plusieurs valeur en sql - Yoda54 - 18-08-2009

Je te conseille, malgré la solution pré-mâchée, de jeter un oeil à la doc, il y a tuojours des choses intéressantes à y découvrir.


RE: Remplacer plusieurs valeur en sql - Zamentur - 18-08-2009

UPDATE table SET Equipe1 = IF(Equipe1='X', '1', Equipe1), Equipe2 = IF(Equipe2='X', '1', Equipe2), Equipe3 = IF(Equipe3='X', '1', Equipe3) WHERE Equipe1='X' OR Equipe2='X' OR Equipe3='X';

C'est mieux que la version du dessus car on évite les lignes ou il n'y a pas de X...

Maintenant,une autre solution peut être plus efficace serait de faire une requête par colonne.


RE: Remplacer plusieurs valeur en sql - Argorate - 19-08-2009

je me demande qu'es ce qui serait le mieux niveau perf?


RE: Remplacer plusieurs valeur en sql - NicoMSEvent - 19-08-2009

je crois que 3 requetes seront plus performantes, surtout si tu as des index bien placés Wink

variante de Zamentur :
Code :
UPDATE table SET
Equipe1 = IF(Equipe1='X', '1', Equipe1),
Equipe2 = IF(Equipe2='X', '1', Equipe2),
Equipe3 = IF(Equipe3='X', '1', Equipe3)
WHERE 'X' IN (Equipe1,Equipe2,Equipe3);