我正在try 使用pq driver对围棋中的PostgreSQL数据库执行以下查询:
SELECT COUNT(id)
FROM tags
WHERE id IN (1, 2, 3)
其中1, 2, 3
在切片tags := []string{"1", "2", "3"}
处通过.
我try 过很多不同的方法,比如:
s := "(" + strings.Join(tags, ",") + ")"
if err := Db.QueryRow(`
SELECT COUNT(id)
FROM tags
WHERE id IN $1`, s,
).Scan(&num); err != nil {
log.Println(err)
}
结果是pq: syntax error at or near "$1"
.我也试过了
if err := Db.QueryRow(`
SELECT COUNT(id)
FROM tags
WHERE id IN ($1)`, strings.Join(stringTagIds, ","),
).Scan(&num); err != nil {
log.Println(err)
}
对于pq: invalid input syntax for integer: "1,2,3"
,它也失败了
我还try 直接传递一个整数/字符串片段,得到了sql: converting Exec argument #0's type: unsupported type []string, a slice
.
那么我如何在Go中执行这个查询呢?