go学习 --- gorm查询

go学习 --- gorm查询,第1张

一、条件查询
package main

import (
	"fmt"
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

//创建映射结构体
type User struct {
	//gorm.Model框架自带的结构体
	gorm.Model
	Name string
	Age  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 User
	db.Take(&u1)
	fmt.Println("随机数据为:",u1)
	//查询最后一条记录
	var u2 User
	db.Last(&u2)
	fmt.Println("最后一条数据为:",u2)
	//查询所有数据
	var u3 []User
	db.Find(&u3)
	fmt.Println("所有的数据为:",u3)
	//指定查询的数据(根据主键)
	var u4 User
	db.First(&u4,1)
    fmt.Println("根据主键id查询的数据为:",u4)
	//条件查询第一条记录
	var u5 User
	db.Where("name = ?","小明").First(&u5)
	fmt.Println("根据名字查询的第一条记录:",u5)
	//条件查询所有记录 <>不等于
	var u6 []User
	db.Where("name<>?","小明").Find(&u6)
	fmt.Println("查询所有的记录为:",u6)
	//条件查询所有记录 in
	var u7 []User
	db.Where("name IN(?)",[]string{"小明"}).Find(&u7)
	fmt.Println("查询所有为条件的记录:",u7)
	//条件模糊查询
	var u8 []User
	db.Where("name like ?","%小明%").Find(&u8)
	fmt.Println("模糊查询的记录为:",u8)
	//and
	var u9 []User
	db.Where("name = ? and age < ?","小红","22").Find(&u9)
	fmt.Println("查询条件范围内的为:",u9)
	//结构体查询
	var u10 []User
	db.Where(&User{Name: "小明",Age: 15}).Find(&u10)
	fmt.Println("根据结构体查询的数据为:",u10)
	//map查询
	var u11 []User
	db.Where(map[string]interface{}{"name":"小红","age":16}).Find(&u11)
	fmt.Println("map查询的结果为:",u11)
	//切片查询,根据主键id
	var u12 []User
	db.Where([]int64{1,2}).Find(&u12)
	fmt.Println("切片查询的结果为:",u12)
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存