亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Gorm 更新為 0 值

使用 Gorm 更新為 0 值

Go
德瑪西亞99 2023-06-05 17:13:31
我正在嘗試使用 gorm 庫更新一些值,但不更新值為 0 的字節和整數var treatment model.TreatmentDBerr = json.Unmarshal(b, &treatment)if err != nil {    http.Error(w, err.Error(), 500)    return}fmt.Println(&treatment)db := db.DB.Table("treatment").Where("id = ?", nID).Updates(&treatment)此打印值為 {0 3 1 0 0 0 2018-01-01 4001-01-01} 那些 0 是未更新的字節值(數據庫中的 tinyint(1),如果我更改為 int 也不起作用) ,其余值工作正常如果我在不使用 Gorm 的情況下以這種方式更新它們,它可以完美地處理 0 值var query  = fmt.Sprintf("UPDATE `pharmacy_sh`.`treatment` SET `id_med` = '%d', `morning` = '%d', `afternoon` = '%d', `evening` = '%d', `start_treatment` = '%s', `end_treatment` = '%s' WHERE (`id` = '%s')", treatment.IDMed, treatment.Morning,  treatment.Afternoon, treatment.Evening, treatment.StartTreatment, treatment.EndTreatment, nID)update, err := dbConnector.Exec(query)這是我的模型對象type TreatmentDB struct {gorm.ModelID              int         `json:"id"`IDMed           int         `json:"id_med"`IDUser          int         `json:"id_user"`Morning         byte        `json:"morning"`Afternoon       byte        `json:"afternoon"`Evening         byte        `json:"evening"`StartTreatment  string      `json:"start_treatment"`EndTreatment    string      `json:"end_treatment"`}謝謝你的幫助??!
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

我找到了一個非常棘手的方法來解決這個問題。您只需要將結構字段類型更改為 ptr 即可。


改變


type Temp struct{

String string

Bool bool

}


type Temp struct{

String *string

Bool *bool

}


查看完整回答
反對 回復 2023-06-05
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

如果你想保存零,你必須寫“選擇”并把列更改

db.Model(&user).Select("姓名", "年齡").更新(用戶{姓名: "new_name", 年齡: 0})

查看完整回答
反對 回復 2023-06-05
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

我認為,這也是可能的方式,如何去做:


var t TreatmentDB 

db.Find(&t).Where("id = ?", 1)

t.IDUser = 0

db.Save(t)


查看完整回答
反對 回復 2023-06-05
  • 3 回答
  • 0 關注
  • 397 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號