update de plusieurs lignes en une seule requete

Eléphanteau du PHP | 46 Messages

07 févr. 2014, 12:54

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 :)

ViPHP
ViPHP | 928 Messages

08 févr. 2014, 03:43

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.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 févr. 2014, 11:17

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

@+
Il en faut peu pour être heureux ......