PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

passer un nombre inconnu de paramètres à la clause IN en utilisant JDBC et Postgres

Vous pouvez créer un type composite comme

CREATE TYPE triple AS (
   a smallint,
   b integer,
   c integer
);

Ensuite, vous pouvez écrire la requête comme ceci :

SELECT * 
FROM t 
WHERE (t.one, t.two, t.three) = ANY (?::triple[]);

Vous fourniriez le tableau sous la forme d'une chaîne unique qui ressemble à

{(11\,12\,13), (21\,22\,23)}

= ANY fait la même chose que IN , mais il peut être utilisé avec un tableau sur le côté droit.