[Beego模型] 构造查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Beego模型] 构造查询相关的知识,希望对你有一定的参考价值。
QueryBuilder 提供了一个简便,流畅的 SQL 查询构造器。在不影响代码可读性的前提下用来快速的建立 SQL 语句。
QueryBuilder 在功能上与 ORM 重合, 但是各有利弊。ORM 更适用于简单的 CRUD 操作,而 QueryBuilder 则更适用于复杂的查询,例如查询中包含子查询和多重联结。
使用方法:
// User 包装了下面的查询结果 type User struct { Name string Age int } var users []User // 获取 QueryBuilder 对象. 需要指定数据库驱动参数。 // 第二个返回值是错误对象,在这里略过 qb, _ := orm.NewQueryBuilder("mysql") // 构建查询对象 qb.Select("user.name", "profile.age"). From("user"). InnerJoin("profile").On("user.id_user = profile.fk_user"). Where("age > ?"). OrderBy("name").Desc(). Limit(10).Offset(0) // 导出 SQL 语句 sql := qb.String() // 执行 SQL 语句 o := orm.NewOrm() o.Raw(sql, 20).QueryRows(&users)
完整 API 接口:
type QueryBuilder interface { Select(fields ...string) QueryBuilder From(tables ...string) QueryBuilder InnerJoin(table string) QueryBuilder LeftJoin(table string) QueryBuilder RightJoin(table string) QueryBuilder On(cond string) QueryBuilder Where(cond string) QueryBuilder And(cond string) QueryBuilder Or(cond string) QueryBuilder In(vals ...string) QueryBuilder OrderBy(fields ...string) QueryBuilder Asc() QueryBuilder Desc() QueryBuilder Limit(limit int) QueryBuilder Offset(offset int) QueryBuilder GroupBy(fields ...string) QueryBuilder Having(cond string) QueryBuilder Subquery(sub string, alias string) string String() string }
摘自:https://beego.me/docs/mvc/model/querybuilder.md
以上是关于[Beego模型] 构造查询的主要内容,如果未能解决你的问题,请参考以下文章
创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段