Page 1 sur 1
Update multiple
Posté : 24 juil. 2013, 11:21
par rimie
Bonjour,
je veux effectuer une operation UPDATE sur plusieurs champs d'un seul clique et UNE SEULE requete:
UPDATE `chansons` SET `mp3` = '1', duration = '37.041633605957', date_add = '1374656786' WHERE num IN (1, 2, 4)
Cette requete va mettre a jour l'id 1,2 et 4 avec les memes informations, peut on le faire et chaque id aura ses propres informations??
Merci
Re: Update multiple
Posté : 24 juil. 2013, 14:14
par Zahnzao
Salut,
c'est possible
UPDATE chansons
SET mp3 = '1',
duration = CASE id
WHEN 1 THEN '37.042'
WHEN 2 THEN '20.652'
WHEN 3 THEN '12.589'
END,
date_add = CASE id
WHEN 1 THEN '1374656786'
WHEN 2 THEN '2358683325'
WHEN 3 THEN '4598695502'
END
WHERE id IN (1,2,3)
Après, niveau optimisation je suis pas certain que ça le soit plus que plusieurs update à la suite.
A tester.
Re: Update multiple
Posté : 24 juil. 2013, 14:50
par rimie
Si jamais j'ai ces donnees sous fome de variables que je recupere d'un formulaire
Re: Update multiple
Posté : 24 juil. 2013, 19:37
par moogli
salut,
aucun intérêt une requête préparée sera plus simple à utilisée (et peut être tout aussi rapide à exécuter) c'est fait pour cela
@+
Re: Update multiple
Posté : 25 juil. 2013, 01:13
par rimie
salut,
aucun intérêt une requête préparée sera plus simple à utilisée (et peut être tout aussi rapide à exécuter) c'est fait pour cela
@+
J'ai pas compris

Re: Update multiple
Posté : 25 juil. 2013, 07:43
par rimie
J'ai fait cette requete:
for($i=0; $i<=$counts; $i++) {
UPDATE `chansons` SET `mp3` = '1', duration = '.$duree[$i].', date_add = '.$date[$i].' WHERE num = $id[$i]
}
J'ai teste et ca me retourne la premiere occurance de chaque variable, par exemple:
$duree[$i] = 123456
avec la requete elle prenait le format:
$duree[$i] = 1
Re: Update multiple
Posté : 25 juil. 2013, 09:33
par moogli
ton dernier code n'est pas syntaxiquement correct ...
ensuite pour les requêtes préparées une exemple
avec l'extension mysql, les extension
mysqliet
PDO proposant chacune un mécanisme pour les utiliser plus simplement.
ceci sera surement le plus utile pour toi qu'une requête alambiquée
@+
Re: Update multiple
Posté : 26 juil. 2013, 09:03
par rimie
merci a vous
Re: Update multiple
Posté : 26 juil. 2013, 09:06
par moogli
Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.