![](/img/trans.png)
[英]Scan a PostgreSQL field (of ARRAY type) into a slice of Go structs
[英]Scan array typed DB field into array/slice in Golang
tl; 博士
我有一个SQL表users
,其中包括一个数组字段。 如何在golang中将其扫描到变量? 我的方法:
var id int
var username string
var activites []string
row := db.QueryRow("SELECT id, username, activities FROM users WHERE id = 1")
err := row.Scan(&id, &username, &activites)
适用于ID,用户名。
正如@mkopriva所指出的那样,可以使用StringArray
方法或更灵活的Array
方法(因为它接受一个接口作为参数)来完成此任务,它们都可以在"github.com/lib/pq"
包中找到。
顺便说一句,使用准备好的语句也是一种好习惯。
完整示例:
var id int
var username string
var activities []string
sqlStatement := `
SELECT
id,
username,
activities
FROM
users
WHERE
id = $1
`
stmt, err := db.Prepare(sqlStatement)
if err != nil {
// handle err
}
defer stmt.Close()
row := stmt.QueryRow(1)
err = row.Scan(
&id,
&username,
pq.Array(&activities) // used here
)
if err == sql.ErrNoRows {
// handle err
}
if err != nil {
// handle err
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.