gorm 查询分页
在编写其他语言框架代码的时候,使用limit语法糖 都是limit(a,b) 而看了grom的文档发现,limit(a) 只接受一个参数 仔细看了下 才发现是这样的
pageindex := 1
pagesize := 5
db.Model(&Model.User{}).Offset((pageindex-1)*pagesize).Limit(pagesize)
一般我们查询分页 也会给前端返回总数 我觉得比较省事的方法
userdb := db.Model(&Model.User{}).Where(&Model.User{Age:12})
var count int32
userdb.Count(&count) //总行数
pageindex := 1
pagesize := 5
UserList := []Model.User{}
userdb.Offset((pageindex-1)*pagesize).Limit(pagesize).Find(&UserList) //查询pageindex页的数据
gorm 空和0 无法更新的问题
假如我想更新user表的个性签名为空的话 或者状态为0的话 使用Updates(User{Name: "", Age: 0, Actived: false}) 是无法更新上去的,打印debug 也会看到sql语句并带有更新这些字段
// WARNING when update with struct, GORM will only update those fields that with non blank value
// For below Update, nothing will be updated as "", 0, false are blank values of their types
db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})
所以后来我的解决办法就是 使用 map[string]interface{}{Name: "", Age: 0, Actived: false}
db.Model(&user).Updates(map[string]interface{}{Name: "", Age: 0, Actived: false})
网友评论