gpt4 book ai didi

postgresql - Golang Postgresql 数组

转载 作者:IT王子 更新时间:2023-10-29 01:38:25 25 4
gpt4 key购买 nike

如果我有一个返回如下内容的表:

id: 1
names: {Jim, Bob, Sam}

names 是一个 varchar 数组。

如何在 Go 中将其扫描回 [] 字符串?我正在使用 lib/pg

现在我有类似的东西

rows, err := models.Db.Query("SELECT pKey, names FROM foo")
for rows.Next() {
var pKey int
var names []string
err = rows.Scan(&pKey, &names)
}

我不断得到:

panic: sql: Scan error on column index 1: unsupported Scan, storing driver.Value type []uint8 into type *[]string

看来我需要使用 StringArray https://godoc.org/github.com/lib/pq#StringArray

但是,我认为我对 Go 还太陌生,无法准确理解如何使用:func (a *StringArray) Scan(src interface{})

最佳答案

你是对的,你可以使用 StringArray 但你不需要调用

func (a *StringArray) Scan(src interface{})

你自己的方法,当你传递任何实现 Scanner 的东西时,rows.Scan 会自动调用它界面。

所以您需要做的是将您的[]string转换*StringArray并将其传递给rows.Scan ,像这样:

rows, err := models.Db.Query("SELECT pKey, names FROM foo")
for rows.Next() {
var pKey int
var names []string
err = rows.Scan(&pKey, (*pq.StringArray)(&names))
}

关于postgresql - Golang Postgresql 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47479973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com