ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### One:一条数据 * qs.Filter("name\_\_exact","Haha").One(&stu) * *指定显示的字段* * qs.Filter("name\_\_exact","Haha").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","Haha").All(&user\_arr) * *指定显示的字段* * qs.Filter("name\_\_exact","Haha").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() * 返回删除的条数和错误信息