Skip to content

查询数据


Db()

可以通过 tg.Db() 去指定表和数据源,接收两个参数,第二个参数选填,不传默认会读取 config/config.yaml 里的数据库配置

注意:
  • Select() FindOne() Count() 这种执行查询动作的要放到链路的末尾。
  • 查询操作默认查询的都是delete_timeNULL的数据, 想查询所有内容请多加一个.ALL()
  • Insert() InsertAll() Update() Decr() Incr() Delete() 这种增删改动作的也要放到链路的末尾。
  • 以上这些动作均可以通过传入参数来控制是否打印当前的SQL语句到控制台,例如:FindOne(&user, tg.FindOneOption{ Debug: true }) 具体怎么传请看对应的文档说明
  • @param tableName 表名
  • @param tg.Source 数据源 tg.Source{}
  • -------@param Link 数据库连接字符串
  • -------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • -------@param CreateTime 创建时间字段名,默认 create_time
  • -------@param UpdateTime 更新时间字段名,默认 update_time
  • -------@param DeleteTime 删除时间字段名,默认 delete_time
  • -------@param MaxOpen 最大打开连接数
  • -------@param MaxIdle 最大空闲连接数
  • -------@param MaxIdleTime 连接在空闲状态下的最大存活时间
  • -------@param MaxLifeTime 连接的最大生命周期,从创建到被关闭的总时间

查询一条数据 FindOne()

  • @param scan 需要映射的结构体指针
  • @param options 设置选项, 选填可不传 tg.FindOneOption{}
  • -------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • -------@param DeleteTime 删除时间字段名,默认 delete_time
var user User
err := tg.Db("user").Where("age", ">", 10).FindOne(&user)
var user User
err := tg.Db("user").Where("age", ">", 10).FindOne(&user)

最终生成的SQL语句为:

SELECT * FROM user WHERE age > 10 AND delete_time IS NULL LIMIT 1
SELECT * FROM user WHERE age > 10 AND delete_time IS NULL LIMIT 1

查询数据集 Select()

  • @param scan 需要映射的结构体指针
  • @param options 设置选项, 选填可不传 tg.SelectOption{}
  • -------@param Debug 是否打印最终执行的SQL语句,默认不打印
  • -------@param DeleteTime 删除时间字段名,默认 delete_time
var user []User
err := tg.Db("user").Where("age", "=", 10).Select(&user)
var user []User
err := tg.Db("user").Where("age", "=", 10).Select(&user)

最终生成的SQL语句为:

SELECT * FROM user WHERE age = 10 AND delete_time IS NULL
SELECT * FROM user WHERE age = 10 AND delete_time IS NULL

多数据源查询

Db('user', tg.Source{}).Where('age', '>', 10).Select()
Db('user', tg.Source{}).Where('age', '>', 10).Select()
Db('user', tg.Source{}).Where('age', '>', 10).Select()
Db('user', tg.Source{}).Where('age', '>', 10).Select()

查询包括软删除的所有数据 ALL()

var user []User
err := tg.Db("user").Where("age", "=", 10).ALL().Select(&user)
var user []User
err := tg.Db("user").Where("age", "=", 10).ALL().Select(&user)

最终生成的SQL语句为:

SELECT * FROM user WHERE age = 10
SELECT * FROM user WHERE age = 10

备案号:冀ICP备20015584号-5