我有一个包含整数数组类型的表。 给定一个整数作为输入,我想查询此列命名的行 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:运算符不存在:整数[]&&整数
我也使用了吱吱声,但宝石没有任何操作员可以做到这一点。
答案 0 :(得分:5)
你可以做任何一次
Zone.where("'?' = ANY (tipo_propiedad)", 1)
或
Zone.where("tipo_propiedad && ARRAY[?]", 1)
# or "&& '{?}'"