go - 更新 "jinzhu/gorm"pkg 中的行失败

标签 go go-gorm

我需要更新多行中字段的值。

我正在查询以获取一些数据库行,但它不起作用。

DB.Where("is_send = ?", "0").Find(&artists)

for _, artist := range artists {
    if condition {
    artist.IsSend = 1
    ... (more updatee)
    DB.Save(&artist)
    }
}

最佳答案

通过引用以下示例更改您的范围:

for _, elem := range elems {
    elem = new_val      // Won't work, because elem is a copy of 
                        // the value from elems
}

for i := range elems {
    elems[i] = new_val  // Works, because elems[i] deferences 
                        // the pointer to the actual value in elems
}

阅读:Gotchas

此外,如果您不修改所有字段,而不是使用 Save您可以使用 Update也是。引用:GORM CRUD's Interface UPDATE

关于go - 更新 "jinzhu/gorm"pkg 中的行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61267010/

相关文章:

Golang 惯用的错误处理

pointers - 在 Go 中使用类似的指针结构分配结构

go-gorm - 如何在 GORM 中引用复合主键?

mysql - 如何在 GORM time.Time 数据类型上设置默认时区

go - 连接Gorm和Gin Golang

sockets - 如何发现客户端正在从 go 中的 tcp 缓冲区读取

Go 1.11 忽略了 `vendor` 目录,错误给人的印象是该目录从未被看过

inheritance - 转到 : can assign struct to an interface, 但不是上层结构

go - 从结构内部的指向 float32 的指针获取值?

postgresql - 如何将 NULL 值插入 UUID 而不是零