2017-10-15 16 views
0

Supposons donc que j'ai une requête simple comme ci-dessous; (c'est un exemple, je sais que ce n'est pas une syntaxe correcte, mais la logique reste la même).Supprimer pour la boucle de la requête

for(let i=1; i<len; i++){ 
    UPDATE table1 
    SET table1.col1 = i 
    WHERE table1.id = arr[i] 
} 

Je veux éviter de faire 10 ou 20 requêtes, donc je me demandais comment retirer le pour, peut-être quelque chose comme

UPDATE table1 
SET table1.col1 = ? #<<how to add the increment here.>> 
WHERE table1.id IN (arr) 

Répondre

0

Vous pouvez convertir le tableau en String des valeurs séparées par des virgules et utilisez-le dans la requête.

Comment convertir tableau dans String de telles valeurs dépend de la langue que vous utilisez dans l'application, par exemple:

  • Here's un exemple de la façon de le faire en php
  • Here's un exemple de pour le faire en Java
+0

Mon problème n'est pas comment inclure l'arr dans l'IN. J'essaye d'augmenter le col1 par 1 pour chaque élément dans le arr. –