这5个方法是数据查询比较常用的方法,方法列表:

  1. func (m *Model) All(where ...interface{} (Result, error)
  2. func (m *Model) One(where ...interface{}) (Record, error)
  3. func (m *Model) Array(fieldsAndWhere ...interface{}) ([]Value, error)
  4. func (m *Model) Value(fieldsAndWhere ...interface{}) (Value, error)
  5. func (m *Model) Count(where ...interface{}) (int, error)
  6. func (m *Model) CountColumn(column string) (int, error)

简要说明:

  1. All 用于查询并返回多条记录的列表/数组。
  2. One 用于查询并返回单条记录。
  3. Array 用于查询指定字段列的数据,返回数组。
  4. Value 用于查询并返回一个字段值,往往需要结合Fields方法使用。
  5. Count 用于查询并返回记录数。

此外,也可以看得到这四个方法定义中也支持条件参数的直接输入,参数类型与Where方法一致。但需要注意,其中ArrayValue方法的参数中至少应该输入字段参数。

使用示例:

  1. // SELECT * FROM `user` WHERE `score`>60
  2. Model("user").Where("score>?", 60).All()
  3. // SELECT * FROM `user` WHERE `score`>60 LIMIT 1
  4. Model("user").Where("score>?", 60).One()
  5. // SELECT `name` FROM `user` WHERE `score`>60
  6. Model("user").Fields("name").Where("score>?", 60).Array()
  7. // SELECT `name` FROM `user` WHERE `uid`=1 LIMIT 1
  8. Model("user").Fields("name").Where("uid", 1).Value()
  9. // SELECT COUNT(1) FROM `user` WHERE `status` IN(1,2,3)
  10. Model("user").Where("status", g.Slice{1,2,3}).Count()