PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

passare un numero sconosciuto di parametri alla clausola IN utilizzando JDBC e Postgres

Potresti creare un tipo composito come

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

Quindi potresti scrivere la query in questo modo:

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

Forniresti l'array come una singola stringa simile a

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

= ANY fa lo stesso di IN , ma può essere utilizzato con un array sul lato destro.