postgresql - 使用数组去 postgres `SELECT * IN`

标签 postgresql go

我有一个简单的选择语句:

Select * FROM X where X.name in ("bob", "joe") and X.phone='123'

这在 postgres 中运行良好,

在我的 Go 代码中,我有以下代码:

var phone string = "123"
var names []string = []string{"bob", "joe"}
sqlStatement := `Select * FROM X where X.name in ($1) and X.phone=$2`
rows, sqlerr := db.Query(sqlStatement, names, phone)

但出于某种原因,我从那个 sql 中出错了。

unsupported Scan, storing driver.Value type into type *string

如何在 sqlstatement 中使用我的名称数组?

注意:如果我执行 fmt.printf 并将 sql 语句粘贴到 postgres 中,我会取回数据 + 如果我取出 $1,并手动输入字符串

最佳答案

从一些有效的 Go PostgreSQL 代码中复制和粘贴片段:

import (
    "database/sql"
    "github.com/lib/pq"
)

    query := `
            . . .
            WHERE code = ANY($1)
           . . .

        `

    codes := []string{"JFK", "LGA", "EWR"}
    rows, err := db.Query(query, pq.Array(codes))

关于postgresql - 使用数组去 postgres `SELECT * IN`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53178203/

相关文章:

postgresql - alter table add column default 并对每一行执行default

arrays - 奇怪的 golang "append"行为(覆盖 slice 中的值)

go - 如何对 channel /互斥内存消耗/分配进行基准测试?

mongodb - MongoDB Compass Filter表达式转换为Go bson.M表达式

postgresql - 将 PostgreSQL 数据库复制到另一个数据库

postgresql - 如何使 SchemaCrawler 在 Windows 中工作?

SQL 自然连接 POSTGRES

postgresql - `select current_user`和 `select current_database()`都是SQL查询语句吗?

go - 如何将 Kubernetes 自定义资源规范与 GO Controller 中的预期规范进行比较?

amazon-web-services - 当 key 包含阿拉伯字符时,AWS Golang SDK 无法复制对象