74 votes

Déclaration SQL avec plusieurs SETs et WHEREs

Je me demande si cette requête est valable :

UPDATE  table
SET ID = 111111259

WHERE ID = 2555

AND SET ID = 111111261

WHERE ID = 2724

AND SET ID = 111111263

WHERE ID = 2021

AND SET ID = 111111264

WHERE ID = 2017

88voto

Brandon Boone Points 8372

NON !

Vous devrez les traiter individuellement

Update [table]
Set ID = 111111259
WHERE ID = 2555

Update [table]
Set ID = 111111261
WHERE ID = 2724

--...

82voto

niktrs Points 4013

La meilleure option est la mise à jour multiple.

Vous pouvez également procéder comme suit, mais c'est PAS recommandé :

UPDATE table
SET ID = CASE WHEN ID = 2555 THEN 111111259 
              WHEN ID = 2724 THEN 111111261
              WHEN ID = 2021 THEN 111111263
              WHEN ID = 2017 THEN 111111264
         END
WHERE ID IN (2555,2724,2021,2017)

34voto

Ahmad Points 3152

Non. Ce n'est pas une requête valide. Vous ne pouvez avoir qu'une seule instruction SET, avec plusieurs champs, mais aussi une seule clause WHERE.

update table1 set field1=value1, field2=value2, field3=value3 where filed4=value5

7voto

Kyle Undefined Points 726

Non, c'est comme ça qu'il faut faire :

UPDATE table SET ID = 111111259 WHERE ID = 2555

UPDATE table SET ID = 111111261 WHERE ID = 2724

UPDATE table SET ID = 111111263 WHERE ID = 2021

UPDATE table SET ID = 111111264 WHERE ID = 2017

4voto

Limey Points 1474

Non, vous devez créer une requête distincte pour chaque mise à jour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X