Faire un SELECT avec IN en postgreSQL

Fermé
GuestCam Messages postés 56 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 8 mars 2008 - 24 juil. 2007 à 15:17
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 - 24 juil. 2007 à 22:29
Bonjour,
j'aimerais savoir comment effectuer une requête postgreSQL du genre:

SELECT addresse from Person WHERE NPA in listeNPA;

et listeNPA est connue(par exemple listeNPA(1005,1004,2005)).
Je programme sous PHP.
Merçi d'avance pour votre aide.

1 réponse

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
24 juil. 2007 à 22:29
Bonsoir,


Je n'ai fait qu'une seule requête de ce type sous PostgreSQL (même si la syntaxe est partout la même) et en général je mets toujours la requête de sélection dans le IN quand je n'hardcode pas les valeurs. Un genre à ça :

SELECT addresse FROM Person WHERE npa IN (SELECT npa FROM Privilegies);

Dans les autres cas, si je connais la liste des valeurs à mettre dans le IN je le code directement de façon dynamique. Par exemple si j'ai un tableau d'entiers je fais une boucle en ajoutant (donc en concaténant) les valeurs à la requête SQL comme ceci (exactitude du code non vérifiée) :

$requete = 'SELECT addresse FROM Person WHERE npa IN ('
for($i=0; $i<sizeof($entiers)-1; $i++)
  {
  $requete .= $entiers[$i] . ',';
  }
$requete .= $entiers[$i] . ')';
-1