2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > go学习 --- gorm查询

go学习 --- gorm查询

时间:2021-04-13 20:56:12

相关推荐

go学习 --- gorm查询

一、条件查询

package mainimport ("fmt""/jinzhu/gorm"_ "/jinzhu/gorm/dialects/mysql")//创建映射结构体type User struct {//gorm.Model框架自带的结构体gorm.ModelName stringAge int64}func main() {//连接数据库db, err := gorm.Open("mysql", "root:123456@(localhost:3306)/db01?charset=utf8mb4&parseTime=True&loc=Local")if err != nil {fmt.Println("open err:", err)return}//关闭连接defer db.Close()//与数据表进行关联//db.AutoMigrate(&User{})//创建数据//user := User{Name: "小明", Age: 15}//db.Create(&user)//user1 := User{Name: "小红", Age: 16}//db.Create(&user1)//定义一个结构体变量用于接收数据var u User//查询数据库的数据第一条记录db.First(&u)fmt.Println("第一条记录为:",u)//随机获取一条记录var u1 Userdb.Take(&u1)fmt.Println("随机数据为:",u1)//查询最后一条记录var u2 Userdb.Last(&u2)fmt.Println("最后一条数据为:",u2)//查询所有数据var u3 []Userdb.Find(&u3)fmt.Println("所有的数据为:",u3)//指定查询的数据(根据主键)var u4 Userdb.First(&u4,1)fmt.Println("根据主键id查询的数据为:",u4)//条件查询第一条记录var u5 Userdb.Where("name = ?","小明").First(&u5)fmt.Println("根据名字查询的第一条记录:",u5)//条件查询所有记录 <>不等于var u6 []Userdb.Where("name<>?","小明").Find(&u6)fmt.Println("查询所有的记录为:",u6)//条件查询所有记录 invar u7 []Userdb.Where("name IN(?)",[]string{"小明"}).Find(&u7)fmt.Println("查询所有为条件的记录:",u7)//条件模糊查询var u8 []Userdb.Where("name like ?","%小明%").Find(&u8)fmt.Println("模糊查询的记录为:",u8)//andvar u9 []Userdb.Where("name = ? and age < ?","小红","22").Find(&u9)fmt.Println("查询条件范围内的为:",u9)//结构体查询var u10 []Userdb.Where(&User{Name: "小明",Age: 15}).Find(&u10)fmt.Println("根据结构体查询的数据为:",u10)//map查询var u11 []Userdb.Where(map[string]interface{}{"name":"小红","age":16}).Find(&u11)fmt.Println("map查询的结果为:",u11)//切片查询,根据主键idvar u12 []Userdb.Where([]int64{1,2}).Find(&u12)fmt.Println("切片查询的结果为:",u12)}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。