// 获取第一条记录,商城m实按主键排序ndb.First(&user)n//// SELECT * FROM users ORDER BY id LIMIT 1;nn// 获取一条记录,商城m实不指定排序ndb.Take(&user)n//// SELECT * FROM users LIMIT 1;nn// 获取最后一条记录 ,商城m实按主键排序ndb.Last(&user)n//// SELECT * FROM users ORDER BY id DESC LIMIT 1;nn// 获取所有的商城m实记录ndb.Find(&users)n//// SELECT * FROM users;nn// 通过主键进行查询 (仅适用于主键是数字类型)ndb.First(&user, 10)n//// SELECT * FROM users WHERE id = 10;n
更新(Update)
db.First(&user)nnuser.Name = "jinzhu 2"nuser.Age = 100ndb.Save(&user)nn// 如果单个属性被更改了 ,更新它ndb.Model(&user).Update("name", "hello")n//// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111;nn// 使用组合条件更新单个属性ndb.Model(&user).Where("active = ?", true).Update("name", "hello")n//// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE id=111 AND active=true;n
删除(Delete)
// 删除一条存在的记录ndb.Delete(&email)n//// DELETE from emails where id=10;nn// 为删除 SQL 语句添加额外选项ndb.Set("gorm:delete_option", "OPTION (OPTIMIZE FOR UNKNOWN)").Delete(&email)n//// DELETE from emails where id=10 OPTION (OPTIMIZE FOR UNKNOWN);n
db.Where("name = ?", "jinzhu").Or("name = ?", "jinzhu >2").Find(&users).Count(&count) //// SELECT * from USERS WHERE name = 'jinzhu' OR name = >'jinzhu 2'; (users) //// SELECT count(*) FROM users WHERE name = 'jinzhu' OR >name = 'jinzhu 2';
我们通过前端的传递过来的分页数据进行查询
func (m *ManageGoodsInfoService) GetMallGoodsInfoInfoList(info manageReq.MallGoodsInfoSearch, goodsName string, goodsSellStatus string) (err error, list interface{ }, total int64) { n limit := info.PageSizen offset := info.PageSize * (info.PageNumber - 1)n // 创建dbn db := global.GVA_DB.Model(&manage.MallGoodsInfo{ })n var mallGoodsInfos []manage.MallGoodsInfon // 如果有条件搜索 下方会自动创建搜索语句n err = db.Count(&total).Errorn if err != nil { n returnn }n if goodsName != "" { n db.Where("goods_name =?", goodsName)n }n if goodsSellStatus != "" { n db.Where("goods_sell_status =?", goodsSellStatus)n }n err = db.Limit(limit).Offset(offset).Order("goods_id desc").Find(&mallGoodsInfos).Errorn return err, mallGoodsInfos, totaln}n