Beego框架:高级查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010986776/article/details/84142249

isnull:判断某个字段是否为null

func (this *OperatorsController) GetIsNull() {
	user := models.User{}
	var users []*models.User
	orm := orm.NewOrm()//创建orm
	qs := orm.QueryTable(user)//创建句柄
	n, err := qs.Filter("name__isnull", false).All(&users)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("n = ", n)
	for _, u := range users {
		fmt.Println("u = ", u)
	}
	this.Ctx.WriteString("查询成功!")
}

in:和sql中得in含义相同,通常和Filter结合使用

func (this *OperatorsController) GetIn() {
	user := models.User{}
	var users []*models.User
	//创建orm
	orm := orm.NewOrm()
	//创建句柄
	qs := orm.QueryTable(user)
	//SELECT * FROM USER WHERE id IN(2, 5, 6);
	/*buffer := []int{ 13, 14, 15, 16}
	n, err := qs.Filter("id__in", buffer).All(&users)*/
	n, err := qs.Filter("id__in", 13, 14, 15, 16).All(&users)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("n = ", n)
	for _, u := range users {
		fmt.Println("u = ", u)
	}
	this.Ctx.WriteString("查询成功!")
}

istartswith:判断某个字段是否以指定内容开始

func (this *OperatorsController) GetStartswith() {
	user := models.User{}
	var users []*models.User
	//创建orm
	orm := orm.NewOrm()
	//创建句柄
	qs := orm.QueryTable(user)
	//SELECT * FROM USER WHERE NAME LIKE '杜%'
	n, err := qs.Filter("name__startswith", "B").All(&users)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("n = ", n)
	for _, u := range users {
		fmt.Println("u = ", u)
	}
	this.Ctx.WriteString("查询成功!")
}

gt:大于,通常和Filter结合使用

func (this *OperatorsController) GetGt() {
	user := models.User{}
	var users []*models.User
	//创建orm
	orm := orm.NewOrm()
	//创建句柄
	qs := orm.QueryTable(user)
	//SELECT * FROM USER WHERE id > 2;
	n, err := qs.Filter("id__gt", 14).All(&users)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("n = ", n)
	for _, u := range users {
		fmt.Println("u = ", u)
	}
	this.Ctx.WriteString("查询成功!")
}

contains:判断某个字段是否 包含指定字段

func (this *OperatorsController) GetContains() {
	user := models.User{}
	//创建用户指针切片,用于存储查询结果
	var users []*models.User
	//创建orm
	orm := orm.NewOrm()
	//创建句柄
	qs := orm.QueryTable(user)
	//SELECT * FROM USER WHERE NAME LIKE '%紫%';
	n, err := qs.Filter("name__contains", "o").All(&users)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("n = ", n)
	for _, u := range users {
		fmt.Println("u = ", u)
	}
	this.Ctx.WriteString("查询成功!")
}

exact:对某个条件取反

func (this *OperatorsController) GetExact() {
	user := models.User{}
	//创建orm
	orm := orm.NewOrm()
	//创建句柄
	qs := orm.QueryTable("user")
	//SELECT * FROM USER WHERE id = 7;
	//在user表中查询id等于12的用户
	err := qs.Filter("id__exact", 12).One(&user)
	if err != nil {
		this.Ctx.WriteString("查询失败!")
		return
	}
	fmt.Println("user = ", user)
	this.Ctx.WriteString("查询成功!")
}

学院Go语言视频主页
https://edu.csdn.net/lecturer/1928

清华团队带你实战区块链开发
扫码获取海量视频及源码 QQ群:721929980
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010986776/article/details/84142249