数据更新/删除

Update更新方法

Update用于数据的更新,往往需要结合DataWhere方法共同使用。Data方法用于指定需要更新的数据,Where方法用于指定更新的条件范围。同时,Update方法也支持直接给定数据和条件参数。

需要注意部分数据库类型支持更新条件结合查询、排序、分组、条数等共同使用。

使用示例:

  1. // UPDATE `user` SET `name`='john guo' WHERE name='john'
  2. r, err := db.Table("user").Data(g.Map{"name" : "john guo"}).Where("name", "john").Update()
  3. r, err := db.Table("user").Data("name='john guo'").Where("name", "john").Update()
  4. // UPDATE `user` SET `status`=1 ORDER BY `login_time` asc LIMIT 10
  5. r, err := db.Table("user").Data("status", 1).Order("login_time asc").Limit(10).Update()
  6. // UPDATE `user` SET `status`=1
  7. r, err := db.Table("user").Data("status=1").Update()
  8. r, err := db.Table("user").Data("status", 1).Update()
  9. r, err := db.Table("user").Data(g.Map{"status" : 1}).Update()

也可以直接给Update方法传递datawhere参数:

  1. // UPDATE `user` SET `name`='john guo' WHERE name='john'
  2. r, err := db.Table("user").Update(g.Map{"name" : "john guo"}, "name", "john")
  3. r, err := db.Table("user").Update("name='john guo'", "name", "john")
  4. // UPDATE `user` SET `status`=1
  5. r, err := db.Table("user").Update("status=1")
  6. r, err := db.Table("user").Update(g.Map{"status" : 1})

Delete删除方法

Delete方法用于数据的删除。

使用示例

  1. // DELETE FROM `user` WHERE uid=10
  2. r, err := db.Table("user").Where("uid", 10).Delete()
  3. // DELETE FROM `user` ORDER BY `login_time` asc LIMIT 10
  4. r, err := db.Table("user").Order("login_time asc").Limit(10).Delete()

也可以直接给Delete方法传递where参数:

  1. // DELETE FROM `user` WHERE `uid`=10
  2. r, err := db.Table("user").Delete("uid", 10)
  3. // DELETE FROM `user` WHERE `score`<60
  4. r, err := db.Table("user").Delete("score < ", 60)