go - 无法更新“jinzhu/gorm”pkg 中的行
问题描述
我需要更新多行中字段的值。
我正在查询以获取一些数据库行,但它不起作用。
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
}
阅读:陷阱
此外,如果您不修改所有字段,而不是使用Save
您也可以使用Update
。参考:GORM CRUD 的界面更新
推荐阅读
- jmeter - 在 Jmeter 中保存记录响应日志
- c# - 如何计算根目录中的所有文件?
- php - 当我们重定向该页面并编写 session_start(); 时,我的 PHP 会话变量在另一个页面中不起作用 功能
- django - django vs jsp 用于生产规模应用程序
- c# - 在 C# razor 代码中每 4 或 5 列创建一个新行
- sql - 在查询中使用案例
- mysql - "select cast(UUID() as VARBINARY(100))" MySQL 查询错误
- php - 如何在PHP中对作为结果获得的多维数组进行排序
- php - 面临来自 AWS S3 的图像加载问题
- r - 如何访问 tibble 列表以检查是否为“UTF-8”并运行 import R