相关疑难解决方法(0)

Postgres中的Go和IN子句

我试图使用pq驱动程序在Go中对PostgreSQL数据库执行以下查询:

SELECT COUNT(id)
FROM tags
WHERE id IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

1, 2, 3切片处传递的位置tags := []string{"1", "2", "3"}.

我尝试了很多不同的东西,比如:

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)
}
Run Code Online (Sandbox Code Playgroud)

结果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 …
Run Code Online (Sandbox Code Playgroud)

postgresql go

9
推荐指数
3
解决办法
4360
查看次数

如何使用sqlx在一个切片中查询mysql?

我想在mysql数据库中查询一个表的值IN:

var qids []int
//fill qids dynamically
err = database.SQL.Select(&quotes,
    "SELECT * FROM quote WHERE qid IN $1", qids)
if err != nil {
    log.Println(err)
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

sql: converting Exec argument #0's type: unsupported type []int, a slice
quotes []
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

mysql go sqlx

5
推荐指数
1
解决办法
6959
查看次数

标签 统计

go ×2

mysql ×1

postgresql ×1

sqlx ×1