网站规划建设论文,高端的佛山网站建设,深圳设计培训机构,北京大型网站建设更新和删除操作的前提条件都是要在找到数据的情况下#xff0c;先要查询到数据才可以做操作。
更新的前提的先查询到记录#xff0c;Save保存所有字段#xff0c;用于单个记录的全字段更新它会保控所有字段#xff0c;即使零值也会保存。 在更新和删除之前#xff0c;要利…更新和删除操作的前提条件都是要在找到数据的情况下先要查询到数据才可以做操作。
更新的前提的先查询到记录Save保存所有字段用于单个记录的全字段更新它会保控所有字段即使零值也会保存。 在更新和删除之前要利用之前学的查询语句先查询到数据再去更新也就是使用find take先去查询所需要的记录再去更新 save 更新单条记录并且所有字段更新 用于单条记录的全部字段更新它会保留所有字段即使0值也会去更新。 db.Debug().Save(s) UPDATE student SET nametest,age60,email123qq.com WHERE id 7 可以看到会更新零值和多个字段。 var s Studentdb.Debug().Take(s, name ?, test)fmt.Println(s)s.Age 60db.Debug().Save(s)fmt.Println(s)[1.423ms] [rows:1] SELECT * FROM student WHERE name test LIMIT 1
{7 test 110 0xc000209140} [5.531ms] [rows:1] UPDATE student SET nametest,age60,email123qq.com WHERE id 7
{7 test 60 0xc000209140} Select 只更新某个字段 只更新某个字段 select save select是字段的名字name不是Name var s Studentdb.Debug().Take(s, name ?, test)s.Age 50db.Debug().Select(age).Save(s)fmt.Println(s)[2.220ms] [rows:1] SELECT * FROM student WHERE name test LIMIT 1
[8.689ms] [rows:1] UPDATE student SET age50 WHERE id 7 update 批量更新单个字段 var s []Studentdb.Debug().Find(s, []int{1, 2, 3}).Update(age, 10)fmt.Println(s)[1.258ms] [rows:3] SELECT * FROM student WHERE student.id IN (1,2,3)[7.232ms] [rows:3] UPDATE student SET age10 WHERE student.id IN (1,2,3) AND id IN (1,2,3)
[{1 lucas 10 nil} {2 lucas 10 nil} {3 10 nil}] 更新多个字段 updates save是批量更新字段但是想更新某个字段updates可以接受结构体类型和map类型。 var s []Studentdb.Debug().Find(s, []int{1, 2, 3}).Updates(Student{Age: 66})fmt.Println(s)[6.909ms] [rows:3] UPDATE student SET age66 WHERE student.id IN (1,2,3) AND id IN (1,2,3)
[{1 lucas 66 nil} {2 lucas 66 nil} {3 66 nil}] var s []Studentdb.Debug().Find(s, []int{1, 2, 3}).Updates(map[string]any{name: lucas,})[4.648ms] [rows:1] UPDATE student SET namelucas WHERE student.id IN (1,2,3) AND id IN (1,2,3)
[{1 lucas 66 nil} {2 lucas 66 nil} {3 lucas 66 nil}]
var s Student
db.Debug().Model(s).Where(name ?, lucas).Update(age, 106)[7.091ms] [rows:1] UPDATE student SET age106 WHERE name lucas