- 1.2 快速入门
- 1.3 集成第三方应用
- 1.4 线程安全的 Map
- 1.5 Bee Watch
- 1.6 开发团队
- 1.7 开发案例
- 1.8 API自动化文档
- 1.9 进程内监控
- 1.10 beego 高级编程
- 1.11 第三方库
- 1.12 Apache 配置
- 1.13 独立部署
- 1.14 nginx 部署
- 1.15 发行部署
- 1.16 Supervisord
- 1.17 在线聊天室
- 1.18 示例程序
- 1.19 短域名服务
- 1.20 Todo 列表
- 1.21 bee 工具简介
- 1.22 beego 的安装
- 1.23 为 beego 做贡献
- 1.24 beego 简介
- 1.26 升级指南
- 1.27 模块介绍
- 1.28 缓存模块
- 1.29 配置文件解析
- 1.30 上下文模块
- 1.31 热升级是什么?
- 1.32 客户端请求
- 1.33 国际化介绍
- 1.34 日志处理
- 1.35 特别注意
- 1.36 核心工具模块
- 1.37 beego 的 MVC 架构介绍
- 1.39 参数配置
- 1.40 控制器介绍
- 1.41 错误处理
- 1.43 flash 数据
- 1.44 JSON、XML、JSONP
- 1.45 日志处理
- 1.46 获取参数
- 1.47 路由设置
- 1.48 session 控制
- 1.49 URL 构建
- 1.51 跨站请求伪造
- 1.53 命令模式
- 1.54 Custom Fields
- 1.55 FAQ
- 1.56 模型定义
- 1.57 对象的 CRUD 操作
- 1.58 ORM 使用方法
- 1.59 模型(Models)- beego ORM
- 1.60 高级查询
- 1.61 构造查询
- 1.62 使用SQL语句进行查询
- 1.63 ORM Test
- 1.64 事务处理
- 1.66 分页处理
- 1.67 静态文件
- 1.68 模板函数
- 1.69 beego 模板语法指南
- 1.70 模板处理
- 1.71 快速入门
- 1.72 controller 逻辑
- 1.73 model 分析
- 1.74 创建项目
- 1.75 项目路由设置
- 1.76 静态文件处理
- 1.77 View 编写
- 1.80 分页
- 1.81 FAQ
- 1.50 表单验证
- 1.42 过滤器
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.61 构造查询
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
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论