查询int是否在数组列中,Postgres with Rails

时间:2015-01-09 14:23:55

标签: sql ruby-on-rails arrays postgresql

我有一个包含整数数组类型的表。 给定一个整数作为输入,我想查询此列命名的行 tipo_propiedad包含输入整数。 直接在Postgres中使用&&amp ;;运算符并将输入int转换为数组。 问题在于:

Zone.where("tipo_propiedad && ?", [].push(type)).count

其中type是输入整数,给出

  

SELECT COUNT(*)FROM" zonas"在哪里(tipo_propiedad&& 1)   PG :: UndefinedFunction:ERROR:运算符不存在:整数[]&&整数

我也试过

Zone.where("tipo_propiedad && ?", [5].push(type))

因为tipo_propiedad内部只有1,2或3,而且提供

  

SELECT COUNT(*)FROM" zonas"在哪里(tipo_propiedad&& 5,1)   PG :: UndefinedFunction:ERROR:运算符不存在:整数[]&&整数

我也使用了吱吱声,但宝石没有任何操作员可以做到这一点。

1 个答案:

答案 0 :(得分:5)

你可以做任何一次

Zone.where("'?' = ANY (tipo_propiedad)", 1)

Zone.where("tipo_propiedad && ARRAY[?]", 1)
                     # or "&& '{?}'"