猿问

将数组类型的数据库字段扫描到 Golang 中的数组/切片中

茶匙; 博士


我有一个users包含数组字段的 sql 表。我怎样才能将它扫描到 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、用户名。


紫衣仙女
浏览 104回答 1
1回答

动漫人物

可以使用StringArray方法或更灵活的Array方法(因为它接受接口作为参数)来完成,这两种方法都可以在包中找到"github.com/lib/pq"。顺便说一句,使用准备好的语句也是一个好习惯。完整示例:var id intvar username stringvar activities []stringsqlStatement := `    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}
随时随地看视频慕课网APP

相关分类

Go
我要回答