首页 > 解决方案 > 无法更新“jinzhu/gorm”pkg 中的行

问题描述

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

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

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

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

标签: gogo-gorm

解决方案


通过参考以下示例更改您的范围:

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
}

阅读:陷阱

此外,如果您不修改所有字段,而不是使用Save您也可以使用Update。参考:GORM CRUD 的界面更新


推荐阅读