var users User fmt.Println("查询所有数据",users) var firstUser, lastUser, takenUser User db.First(&firstUser) fmt.Println("查询第一条数据",firstUser) db.Last(&lastUser) fmt.Println("查询最后一条数据",lastUser) db.Take(&takenUser) fmt.Println("随便查询一条数据",takenUser)
可以根据主键检索
1 2
db.Find(&user,10) db.Find(&user,[]int{1,2,3})
可以按照条件检索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
var users User db.Where("id = ?", 1).First(&users) fmt.Println(users) var u []User db.Where("id in (?)", []int{1, 2, 3}).Find(&u) var uu []User db.Where("name like ?", "张%").Find(&uu) var uuu []User db.Where("name = ? and age = ?", "张三", 18).Find(&uuu) var uuuu []User db.Where("id between ? and ?", 1, 3).Find(&uuuu) var uuuuu []User db.Where("id > ?", 1).Find(&uuuuu) fmt.Println(users) fmt.Println(u) fmt.Println(uu) fmt.Println(uuu) fmt.Println(uuuu) fmt.Println(uuuuu)
使用或者语义–Or
1 2
var user []User db.Where("id = ?", 1).Or("id = ?", 2).Find(&user)
使用否定语义–Not
1 2
var user []User db.Where("id = ?", 1).Not("name = ?", "张三").Find(&user)
使用排序–Order
1 2 3 4 5 6 7
// 从上往下升序 var users []User db.Order("id").Find(&users)
// 从上往下降序 var users []User db.Order("id desc").Find(&users)
var ( // ErrRecordNotFound record not found error ErrRecordNotFound = logger.ErrRecordNotFound // ErrInvalidTransaction invalid transaction when you are trying to `Commit` or `Rollback` ErrInvalidTransaction = errors.New("invalid transaction") // ErrNotImplemented not implemented ErrNotImplemented = errors.New("not implemented") // ErrMissingWhereClause missing where clause ErrMissingWhereClause = errors.New("WHERE conditions required") // ErrUnsupportedRelation unsupported relations ErrUnsupportedRelation = errors.New("unsupported relations") // ErrPrimaryKeyRequired primary keys required ErrPrimaryKeyRequired = errors.New("primary key required") // ErrModelValueRequired model value required ErrModelValueRequired = errors.New("model value required") // ErrInvalidData unsupported data ErrInvalidData = errors.New("unsupported data") // ErrUnsupportedDriver unsupported driver ErrUnsupportedDriver = errors.New("unsupported driver") // ErrRegistered registered ErrRegistered = errors.New("registered") // ErrInvalidField invalid field ErrInvalidField = errors.New("invalid field") // ErrEmptySlice empty slice found ErrEmptySlice = errors.New("empty slice found") // ErrDryRunModeUnsupported dry run mode unsupported ErrDryRunModeUnsupported = errors.New("dry run mode unsupported") // ErrInvalidDB invalid db ErrInvalidDB = errors.New("invalid db") // ErrInvalidValue invalid value ErrInvalidValue = errors.New("invalid value, should be pointer to struct or slice") // ErrInvalidValueOfLength invalid values do not match length ErrInvalidValueOfLength = errors.New("invalid association values, length doesn't match") // ErrPreloadNotAllowed preload is not allowed when count is used ErrPreloadNotAllowed = errors.New("preload is not allowed when count is used") )