本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

QueryTable接口

One:一条数据

  • qs.Filter(“name__exact”,“Zhiliao”).One(&stu)

  • 指定显示的字段

  • qs.Filter(“name__exact”,“Zhiliao”).One(&stu,“name”,“age”)

Filter:包含条件

  • 多个 Filter 之间使用 AND 连接

  • qs.Filter(“profile__isnull”, true).Filter(“name”, “slene”)

  • 类sql: WHERE NOT profile_id IS NULL AND name = ‘slene’

All:所有数据

  • 返回对应的结果集对象

  • 默认最大行数为 1000

  • user_arr := []models.UserStruct{}

  • qs.Filter(“name__exact”,“Zhiliao”).All(&user_arr)

  • 指定显示的字段

  • qs.Filter(“name__exact”,“Zhiliao”).All(&user_arr,“name”,“age”)

Exclude:排除条件

  • Exclude 之间使用 AND 连接

  • 使用 NOT 排除条件

  • qs.Exclude(“profile__isnull”, true).Filter(“name”, “slene”)

Limit:限制最大返回数据行数

  • 第二个可选参数可以设置Offset,意思从什么位置开始查询

  • qs.Limit(10, 20)

  • LIMIT 10 OFFSET 20 注意跟 SQL 反过来的

  • beego中limit的使用:qs.Limit(2,1).All(&user_arr)

  • sql的limit:limit 0,2; 从第0个数据开始,查询两条数据

Offset:设置 偏移行数,意思从什么位置开始查询

  • qs.Offset(20)

  • beego中使用:qs.Filter(“name__isnull”,false).Offset(1).All(&user_arr)

  • 角标从0开始,代表第一条数据

GroupBy:分组

  • 根据“By”指定的规则对数据进行分组

  • beego中使用GroupBy:qs.GroupBy(“age”).All(&user_arr)

  • sql:SELECT SUM(age) FROM `user` GROUP BY addr

  • group by 必须放在 order by 和 limit之前

OrderBy:排序

  • 参数使用 expr

  • ASC升序,字段名前面没有- :qs.OrderBy(“age” ) 默认的

  • DESC降序,字段名前面有- :qs.OrderBy("-age" )

  • 根据多个字段排序,用逗号隔开: qs.OrderBy("-age" ,“name”)

  • qs.OrderBy("-age").All(&user_arr)

Distinct:去重,没有参数

  • 根据指定字段去重,需要在all方法中指定字段,否则根据所有字段去重

  • beego中的使用:qs.Distinct().All(&user_arr,“name”,“age”,“addr”)

  • sql:SELECT DISTINCT addr, age,name FROM `user`

Count:统计个数,没有参数,后面不能跟查询条数的方法

  • num, err := qs.Filter(“name__isnull”,false).Count()

  • 统计的个数

  • 错误信息

  • sql:SELECT COUNT(*) FROM `user`;

Exist:是否存在,没有参数,后面不能跟查询条数的方法

  • exict := qs.Filter(“name__isnull”,false).Exist()

  • 返回true或false

Update:更新

  • 依据当前查询条件,进行批量更新操作

  • num, err := o.QueryTable(“user”).Filter(“name”, “slene”).Update(orm.Params{

“name”: “astaxie”,

})

  • 返回更新的条数和错误信息

Delete:删除

  • 依据当前查询条件,进行批量删除操作

  • num, err := o.QueryTable(“user”).Filter(“name”, “slene”).Delete()

  • 返回删除的条数和错误信息

补充:不是QueryTable接口

insert:插入

2051人已阅读,今天你学习了吗?

添加新回复