Documentation ¶
Index ¶
- type Base
- type Criteria
- func (c Criteria) And(cri Base) Where
- func (c Criteria) Append(cri Base) Where
- func (c Criteria) Col(col string) Criteria
- func (c Criteria) Eq(val interface{}) Criteria
- func (c Criteria) Gt(val interface{}) Criteria
- func (c Criteria) Gte(val interface{}) Criteria
- func (c Criteria) In(val interface{}) Criteria
- func (c Criteria) IsNotNull() Criteria
- func (c Criteria) IsNull() Criteria
- func (c Criteria) Like(val interface{}) Criteria
- func (c Criteria) Lt(val interface{}) Criteria
- func (c Criteria) Lte(val interface{}) Criteria
- func (c Criteria) Ne(val interface{}) Criteria
- func (c Criteria) Or(cri Base) Where
- func (c Criteria) Sql() (string, []interface{})
- type Order
- type Page
- type PageRet
- type Q
- type String
- type Where
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Base ¶ added in v0.6.7
type Base interface {
Sql() (string, []interface{})
}
Base sql expression
type Criteria ¶ added in v0.6.7
type Criteria struct {
// contains filtered or unexported fields
}
Criteria wrap a group of column, value and operator such as name = 20
Example ¶
query := C().Col("name").Eq("wubin").Or(C().Col("school").Eq("havard")).And(C().Col("age").Eq(18)) fmt.Println(query.Sql()) query = C().Col("name").Eq("wubin").Or(C().Col("school").Eq("havard")).And(C().Col("delete_at").IsNotNull()) fmt.Println(query.Sql()) query = C().Col("name").Eq("wubin").Or(C().Col("school").In("havard")).And(C().Col("delete_at").IsNotNull()) fmt.Println(query.Sql()) query = C().Col("name").Eq("wubin").Or(C().Col("school").In([]string{"havard", "beijing unv"})).And(C().Col("delete_at").IsNotNull()) fmt.Println(query.Sql()) query = C().Col("name").Eq("wubin").Or(C().Col("age").In([]int{5, 10})).And(C().Col("delete_at").IsNotNull()) fmt.Println(query.Sql()) query = C().Col("name").Ne("wubin").Or(C().Col("create_at").Lt("now()")) fmt.Println(query.Sql()) page := Page{ Orders: []Order{ { Col: "create_at", Sort: sortenum.Desc, }, }, Offset: 20, Size: 10, } page = page.Order(Order{ Col: "score", Sort: sortenum.Asc, }) page = page.Limit(30, 5) fmt.Println(page.Sql()) pageRet := NewPageRet(page) fmt.Println(pageRet.PageNo) fmt.Println(P().Order(Order{ Col: "score", Sort: sortenum.Asc, }).Limit(20, 10).Sql()) query = C().Col("name").Eq("wubin").Or(C().Col("school").Eq("havard")). And(C().Col("age").Eq(18)). Or(C().Col("score").Gte(90)) fmt.Println(query.Sql()) page = P().Order(Order{ Col: "create_at", Sort: sortenum.Desc, }).Limit(0, 1) var where Q where = C().Col("project_id").Eq(1) where = where.And(C().Col("delete_at").IsNull()) where = where.Append(page) fmt.Println(where.Sql()) where = C().Col("project_id").Eq(1) where = where.And(C().Col("delete_at").IsNull()) where = where.Append(String("for update")) fmt.Println(where.Sql()) where = C().Col("cc.project_id").Eq(1) where = where.And(C().Col("cc.delete_at").IsNull()) where = where.Append(String("for update")) fmt.Println(where.Sql()) where = C().Col("cc.survey_id").Eq("abc"). And(C().Col("cc.year").Eq(2021)). And(C().Col("cc.month").Eq(10)). And(C().Col("cc.stat_type").Eq(2)).Append(String("for update")) fmt.Println(where.Sql()) where = C().Col("cc.name").Like("%ba%") fmt.Println(where.Sql())
Output: ((`name` = ? or `school` = ?) and `age` = ?) [wubin havard 18] ((`name` = ? or `school` = ?) and `delete_at` is not null) [wubin havard] ((`name` = ? or `school` in (?)) and `delete_at` is not null) [wubin havard] ((`name` = ? or `school` in (?,?)) and `delete_at` is not null) [wubin havard beijing unv] ((`name` = ? or `age` in (?,?)) and `delete_at` is not null) [wubin 5 10] (`name` != ? or `create_at` < ?) [wubin now()] order by `create_at` desc,`score` asc limit ?,? [30 5] 7 order by `score` asc limit ?,? [20 10] (((`name` = ? or `school` = ?) and `age` = ?) or `score` >= ?) [wubin havard 18 90] (`project_id` = ? and `delete_at` is null) order by `create_at` desc limit ?,? [1 0 1] (`project_id` = ? and `delete_at` is null) for update [1] (cc.`project_id` = ? and cc.`delete_at` is null) for update [1] (((cc.`survey_id` = ? and cc.`year` = ?) and cc.`month` = ?) and cc.`stat_type` = ?) for update [abc 2021 10 2] cc.`name` like ? [%ba%]
func (Criteria) In ¶ added in v0.6.7
In set in operator and column value, val should be a slice type value
func (Criteria) Like ¶ added in v0.8.6
Like set like operator and column value, val should be a slice type value
type Where ¶ added in v0.6.7
type Where struct {
// contains filtered or unexported fields
}
Where concat children clauses with one of logic operators And, Or, Append
Click to show internal directories.
Click to hide internal directories.