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

INSERT INTO MyTable(姓名,年龄,...)

INSERT INTO MyTable(姓名,年龄,...)

Go
倚天杖 2021-12-07 10:14:11
我如何使用 go标准sql 包来构建它以便其他人可以阅读它?我需要添加许多字段。result, err := db.Exec(    "INSERT INTO MyTable (name, age, ...ALLLOOOT...) VALUES ($1, $2, ...ALLLOOOT...)",    "gopher",    27,    ...ALLLOOOT...)编辑:额外的问题,你可以使用这样的东西并从中提取字段名称db:"..."吗?type MyTable struct {    Age   int64   `db:"age" json:"age"`    Name  string  `db:"name" json:"name"`    ....}
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

有不同的方法可以做到这一点,我所做的其中一种方法是创建键和值的数组,然后您可以使用它们来迭代并使用占位符构建查询。


然后,您将使用可变参数来填充占位符。


它看起来像这样


keys := []string{"your", "keys", ...}

values := []interface{}{1, "two", ...}

placeholders := make([]string, len(values))

for idx := range values {

    placeholders[idx] = "?"

}

query := fmt.Sprintf("INSERT INTO (%s) VALUES (%s)", strings.Join(keys, ", "), strings.Join(placeholders, ", "))


result, err := db.Exec(query, values...)

这个游乐场展示了类似的东西 fmt.Printf


http://play.golang.org/p/NruF92EJqM


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

添加回答

举报

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