2010-10-27 9 views
0

Je veux poser une question sur le SQL. J'ai le tableau suivant.Comment récupérer un ensemble de données de table dans SQL?

Name Phone 
a 1 
b 2 
c 3 
d 4 
e 5 

Je une liste de tableaux (Java), qui contient le [a, b, c, d, e]. Est-il possible de mettre l'ArrayList dans l'instruction mySQL pour récupérer tous les numéros de téléphone? Je vous remercie.

Répondre

1

Vous pouvez créer une clause IN pour tous les noms et la carte du jeu de résultats à vos données:

SELECT Name, Phone FROM Numbers WHERE Name IN ('a','b','c','d','e') 

Je suis sûr qu'il ya déjà des bibliothèques qui font le travail nécessaire pour vous. Vous pouvez commencer à http://www.hibernate.org/ avec votre recherche.

0

vous devez créer votre propre instruction par java. parcourez l'arrayliste et ajoutez chaque élément de chaîne à l'instruction.

1

Je ne pense pas qu'il existe un moyen direct de le faire.
Mais vous avez les options suivantes:

  1. Vous pouvez utiliser la clause IN. Créez dynamiquement la clause IN en bouclant la liste et en créant une chaîne. Remarque: Oracle limite le nombre d'entrées de la clause IN à 1 000.

  2. Vous pouvez insérer les valeurs dans une table (temp) et utiliser cette table dans votre SQL, dans une clause IN ou en tant que JOIN (je préfère la jointure)

  3. Vous pouvez avoir une procédure stockée PL/SQL qui prend en paramètre un tableau (oracle). Et boucle à travers ce tableau dans le proc stocké. Voir this pour un exemple.

Questions connexes