gorm学习总结(二)

19.获取第一条记录,按主键排序

var user User
db.First(&user)
fmt.Println(user)

20.获取最后一条记录,按主键排序

db.Last(&user)

21.获取所有记录

var users []User
db.Find(&users)
fmt.Println(users)

22.使用主键获取记录(id=10)

db.First(&user, 10)

23.获取第一个匹配记录

db.Where("name = ?", "jinzhu").First(&user)

24.获取所有匹配记录

db.Where("name = ?", "jinzhu").Find(&users)

25.IN的使用

db.Where("name in (?)", []string{"jinzhu", "jinzhu 2"}).Find(&users)

26.LIKE的使用

db.Where("name LIKE ?", "%jin%").Find(&users)

27.AND的使用

db.Where("name = ? AND age >= ?", "jinzhu", "22").Find(&users)

28.struct的Where查询,注意:当使用struct查询时,GORM将只查询那些具有值的字段

db.Where(&User{Name: "jinzhu", Age: 20}).First(&user)

29.map的Where查询

db.Where(map[string]interface{}{"name": "jinzhu", "age": 20}).Find(&users)

30.带内联条件的查询

// 按主键获取
db.First(&user, 23)
// 简单SQL
db.Find(&user, "name = ?", "jinzhu")

31.Or的使用

db.Where("role = ?", "admin").Or("role = ?", "super_admin").Find(&users)

32.查询链

db.Where("name <> ?","jinzhu").Where("age >= ? and role <> ?",20,"admin").Find(&users)

33.扩展查询选项

db.Set("gorm:query_option", "FOR UPDATE").First(&user, 10)

34.Select的使用

db.Select("name, age").Find(&users)

35.Order的使用

b.Order("age desc, name").Find(&users)

36.Limit的使用

db.Limit(3).Find(&users)

 37.Offset的使用(指定在开始返回记录之前要跳过的记录数)

db.Offset(3).Find(&users)

38.Count的使用

db.Where("name = ?", "jinzhu").Or("name = ?", "jinzhu 2").Find(&users).Count(&count)

39.GroupBy的使用

rows, err := db.Table("orders").Select("date(created_at) as date, sum(amount) as total").Group("date(created_at)").Having("sum(amount) > ?", 100).Rows()

40.Join的使用

db.Table("users").Select("users.name, emails.email").Joins("left join emails on emails.user_id = users.id").Scan(&results)

41.Scan的使用

type Result struct {
    Name string
    Age  int
}
db.Raw("SELECT name, age FROM users WHERE name = ?", 3).Scan(&result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值