我正在寻找一种将数组参数传递给pg_数组查询(https://www.postgresql.org/docs/8.2/static/functions-array.html)的方法。类似于:

Model.where("array_col && ?", ids)

&&-重叠
ids=[2,3]
array_col是包含整数的数组,例如[1,2]
当硬编码工作时:
Model.where("array_col && ARRAY[2,3]")

最佳答案

将pg_数组扩展加载到Sequel::Database对象(它附带Sequel),然后:

Model.where("array_col && ?", Sequel.pg_array(ids))

Sequel还附带了pg_array_ops扩展,允许您执行以下操作:
Model.where(Sequel.pg_array(:array_col).overlaps(ids))

10-01 07:00
查看更多