Redshift поддерживает ANY('{1,2,3}'::integer[])
.
Причина, по которой db.Query('select * from table where colID = ANY($1)', pq.Array([]int{1,2,3}))
не работает, заключается в том, что значение, возвращаемое pq.Array([]int{1,2,3})
, равно {1,2,3}
. Однако красное смещение ожидает, что оно будет '{1,2,3}'
. Изменение запроса для включения единственного парантеза ''
db.Query('select * from table where colID = ANY('$1')', pq.Array([]int{1,2,3}))
вокруг массива не работает.
После нескольких попыток приведенный ниже код сработал!
v, _ := pq.Array([]int{1,2,3}).Value()
query := fmt.Sprintf(`select * from table where colID = any('%v'::integer[]);`, v)
rows, err := db.Query(query)