Faire un SELECT avec IN en postgreSQL

GuestCam Messages postés 56 Statut Membre -  
Posotaz Messages postés 505 Statut Membre -
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 505 Statut Membre 225
 
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