猿问

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

我如何使用 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"`

    ....

}


倚天杖
浏览 134回答 1
1回答

慕的地10843

有不同的方法可以做到这一点,我所做的其中一种方法是创建键和值的数组,然后您可以使用它们来迭代并使用占位符构建查询。然后,您将使用可变参数来填充占位符。它看起来像这样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.Printfhttp://play.golang.org/p/NruF92EJqM
随时随地看视频慕课网APP

相关分类

Go
我要回答