Page 1 sur 1

update de plusieurs lignes en une seule requete

Posté : 07 févr. 2014, 12:54
par nico63800
Bonjour
ma question est la suivante:

je dois faire un update de plusieurs lignes (en fait des centaines) du style :
UPDATE ma_table SET champ1='new_val_champ_1' WHERE champ1='val_champ_1' ; 
UPDATE ma_table SET champ1='new_val_champ_2' WHERE champ1='val_champ_2' ; 
UPDATE ma_table SET champ1='new_val_champ_3' WHERE champ1='val_champ_3' ; 
UPDATE ma_table SET champ1='new_val_champ_4' WHERE champ1='val_champ_4' ;
envoyer des centaines de requetes au serveur c'est pas top ....
Existe il un moyen de faire çà avec une seule requete ???

un truc du style :

UPDATE ma_table SET
champ1='new_val_champ_1' WHERE champ1='val_champ_1' ,
champ1='new_val_champ_2' WHERE champ1='val_champ_2' ,
champ1='new_val_champ_3' WHERE champ1='val_champ_3'

merci :)

Re: update de plusieurs lignes en une seule requete

Posté : 08 févr. 2014, 03:43
par Genova
Non, à partir du moment où les données assignées ET les conditions sont toutes différentes, il faut faire des requêtes séparées.

Re: update de plusieurs lignes en une seule requete

Posté : 08 févr. 2014, 11:17
par moogli
Salut,

Au vu des requêtes pourquoi ne pas opter pour un truc plus dynamique vu qu'à priori c'est juste ajouter 'new_' devant la valeur existante.

Par exemple un
update latable set truc = 'new_'||truc

@+