2011-08-27 4 views
0

Comment puis-je formuler une requête SELECT où les valeurs de l'un des champs est dynamique, les valeurs de sintom, qui est un tableau de chaîne, sont déterminées lors de l'exécution comment pourrais-je modifier cette requête:Plusieurs valeurs dans SELECT

 q = "SELECT DISTINCT nome FROM malattia WHERE eta='" + age + "' AND sesso='" + sexstr + "' AND etnia='" + etniastr + "' AND sintomi IN('" + sexstr + "')"; 

je aurais besoin quelque chose comme ceci:

... AND sintomi IN('" + sexstr[0] + "','" + sexstr[1] + "','" + sexstr[2] + "')"; 

Le tableau sintom peut avoir une longueur de 1 jusqu'à 10, je ne l'ai pas opté pour la pensée PreparedStatement il serait abit simple, si j'utilise la concaténation de chaînes.Plus je ne peux pas utiliser une boucle parce que je dois l'accomplir dans une seule requête. Merci d'avance!

Répondre

2

Utilisez guavaJoiner.on("','").join(array) ou commons-langStringUtils.join(array, "','")

+0

Je pensais l'autre est l'ont toujours 10 éléments et renseigner ceux non utilisés avec l'ordure qui ne correspondent pas, mais cette réponse est la bonne. – Bohemian

+0

Merci et comment cela devrait-il changer ma requête? – Student

+0

au lieu d'avoir + ... + ..., vous venez de mettre le 'join (..)' dans IN ('"..."') – Bozho

Questions connexes