为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
紫衣仙女 2023-06-12 15:14:43
茶匙; 博士我有一个users包含数组字段的 sql 表。我怎样才能将它扫描到 golang 中的变量?我的方法:var id        intvar username  stringvar activites []stringrow := db.QueryRow("SELECT id, username, activities FROM users WHERE id = 1")err := row.Scan(&id, &username, &activites)适用于 id、用户名。
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

可以使用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

}


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信