查询具有数组的数组列

时间:2014-09-24 07:00:18

标签: ruby-on-rails arrays postgresql

我有一个带有数据类型数组的数据库列。如何在rails中查询带有数组的数组?例如,我的Product表中有一个OS软件阵列,我想查询它们:

selected_products = ['Apple', 'Linux']

Software.where("'#{selected_products}' = ANY (osses)")

编辑:

软件表的示例:

id  |  software    |        osses         |
_______________________________________________________

1     product 1     {'Windows', 'Apple', 'Android'}
2     product 2     {'Android', 'Linux'}
3     product 3     {'Windows,', 'Android'}
4     product 4     {'Windows'}

在这种情况下,我希望查询返回id的1和2(因为id 1在Apple中匹配,id 2在Linux中匹配。)

1 个答案:

答案 0 :(得分:1)

Please look into this gem.

然后执行类似

的查询
selected_products = ['Apple', 'Linux']
Software.where.overlap(osses: selected_products)