如何在Postgres中使用带有OR组合数组的WHERE语句?

时间:2017-09-23 23:38:10

标签: sql postgresql

我不确定如何说出这个问题,但前提是我有一个表,其中主键由两列定义:rowcol。我还想查询许多单独的列,这是我的问题发挥作用的地方。

如果我有一个名为id的简单列,我将能够执行WHERE id=ANY($1)之类的子句,其中$1是一个整数数组。但是,如果主键由两列组成,我将无法做到这一点。

WHERE row=ANY($1) AND col=ANY($2)给了我一个我想要的区域,但不是我需要的确切元组。现在我正在生成一个包含许多条件的模板查询字符串,例如:

WHERE row=$1 AND col=$2 OR
      row=$3 AND col=$4 OR ... 

如何避免生成此"查询模板"?我不认为这是一个非常优雅的解决方案,但它是我现在的解决方案。任何见解都将不胜感激!

1 个答案:

答案 0 :(得分:1)

file://

where (row,col) = any(array[(1,2),(3,4)])