Postgres选择带有2D Golang切片的WHERE col1,col2 IN

时间:2019-09-10 17:57:27

标签: postgresql go

我不确定如何在2dslice中的postgres查询中(col1,col2)

我尝试了以下方法:

`

CREATE TABLE table2 (
  id CHAR(27) NOT NULL,
  lat FLOAT8 NOT NULL,
  lon FLOAT8 NOT NULL,
  PRIMARY KEY (id)
);


latlongdata := [][]float64{}
latlongdata = append(latlongdata, []float64{1.2, 2.3},)
latlongdata = append(latlongdata, []float64{1.3, 2.4},)
......................................
latlongdata = append(latlongdata, []float64{1.4, 2.5},)

fmt.Println(latlongdata)// prints [[1.2 2.3] [1.3 2.4] ....... [1.4 2.5]] (very long array)

Query: r.db.QueryContext(ctx,("SELECT id, lat, lon FROM table2 WHERE (lat, lon) IN $1", latlongdata,)

`

您能建议如何做吗?

1 个答案:

答案 0 :(得分:0)

Query: r.db.QueryContext(ctx,("SELECT id, lat, long FROM table2 WHERE lat, long IN (select $1, $2 union select $3, $4)", latlongdata[0][0], latlongdata[0][1], latlongdata[1][0], latlongdata[1][1])

或创建latlongdata并将其插入到临时表中 然后

WHERE lat, long IN (select filed1, field2 from temptable)
相关问题