package controllers

import (
	"BeegoStudy/models"
	"fmt"

	"github.com/astaxie/beego"
	"github.com/astaxie/beego/orm"
)

type QueryTableTest struct {
	beego.Controller
}

func (qt *QueryTableTest) Get() {
	//QueryTable接口的使用

	o := orm.NewOrm()
	qs := o.QueryTable(new(models.Users))
	user := models.Users{}

	//1.查询所有数据取第一条
	qs.One(&user)
	fmt.Printf("user: %v\n", user)

	//2.查询所有数据
	var users []models.Users
	qs.All(users)
	fmt.Printf("users: %v\n", users)

	//3.过滤查询
	qs.Filter("age__gt", 18).All(users)
	fmt.Printf("user: %v\n", user)

	//4.排除查询
	qs.Exclude("name", "张三").All(users)

	//6.limit和offset查询
	qs.Limit(5).Offset(10).All(users) //从查询到的数据数据中偏移10条,查询5条

	//7.分组查询(注意:分组查询只返回每个分组的第一条数据)
	qs.GroupBy("age").All(users)
	fmt.Printf("users: %v\n", users)

	//8.orderBy排序(默认升序)
	qs.OrderBy("age").All(users)
	//降序
	qs.OrderBy("-age").All(users)

	//9.去重查询[默认是全部字段不重复]
	qs.Distinct().All(users)
	//指定字段不重复
	qs.Distinct().All(users, "age", "address")

	//10.统计数据条数
	total, err := qs.Count()
	if err != nil {
		fmt.Printf("total: %v\n", total)
	}

	//11.判断指定条件数据是否存在
	isExist := qs.Filter("name", "张三").Exist()
	fmt.Printf("isExist: %v\n", isExist)

}

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐