This repository has been archived on 2022-04-14. You can view files and clone it, but cannot push or open issues or pull requests.
manual-zh-CN/chapter-05/4.find.md

968 B
Raw Permalink Blame History

Find方法

查询多条数据使用Find方法Find方法的第一个参数为slice的指针或Map指针即为查询后返回的结果第二个参数可选为查询的条件struct的指针。

  1. 传入Slice用于返回数据
everyone := make([]Userinfo, 0)
err := engine.Find(&everyone)

pEveryOne := make([]*Userinfo, 0)
err := engine.Find(&pEveryOne)
  1. 传入Map用户返回数据map必须为map[int64]Userinfo的形式map的key为id因此对于复合主键无法使用这种方式。
users := make(map[int64]Userinfo)
err := engine.Find(&users)

pUsers := make(map[int64]*Userinfo)
err := engine.Find(&pUsers)
  1. 也可以加入各种条件
users := make([]Userinfo, 0)
err := engine.Where("age > ? or name = ?", 30, "xlw").Limit(20, 10).Find(&users)
  1. 如果只选择单个字段也可使用非结构体的Slice
var ints []int64
err := engine.Table("user").Cols("id").Find(&ints)