如何在Postgresql + Rails4中基于多个密钥对获取数据

时间:2017-04-19 07:36:34

标签: arrays postgresql ruby-on-rails-4 postgresql-9.4

我有一个表XYZ,其中有几列,我需要根据两列(col1,col2)过滤掉结果集请求的参数

请求索引如:

filter: [ {col1: val1, col2: val2 }, {col1: val11, col2: val12 }]

API请求收到一个包含哈希数组的参数,每个哈希都有一对请求的查询过滤器。这是我的表结构和预期的结果集

id      col1    col2
----------------------
1       val1    val2
2       val11   val12
3       val21   val12
4       val1    val2
5       val33   val33

结果应为

id      col1    col2
--------------------
1       val1    val2
2       val11   val12
4       val1    val2

我查了https://dba.stackexchange.com/questions/117767/postgresql-pattern-match-against-array-elements但不明白。 请帮忙

1 个答案:

答案 0 :(得分:1)

您可以根据提供的值使用IN条件:

select *
from xyz
where (col1, col2) in ( ('val1', 'val2'), ('vall11', 'vall12') )