query

package
v0.7.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

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
}

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(Literal("wubin")).Or(C().Col("school").Eq(Literal("havard"))).And(C().Col("age").Eq(Literal(18)))
fmt.Println(query.Sql())

query = C().Col("name").Eq(Literal("wubin")).Or(C().Col("school").Eq(Literal("havard"))).And(C().Col("delete_at").IsNotNull())
fmt.Println(query.Sql())

query = C().Col("name").Eq(Literal("wubin")).Or(C().Col("school").In(Literal("havard"))).And(C().Col("delete_at").IsNotNull())
fmt.Println(query.Sql())

query = C().Col("name").Eq(Literal("wubin")).Or(C().Col("school").In(Literal([]string{"havard", "beijing unv"}))).And(C().Col("delete_at").IsNotNull())
fmt.Println(query.Sql())

var d int
var e int
d = 10
e = 5

query = C().Col("name").Eq(Literal("wubin")).Or(C().Col("age").In(Literal([]*int{&d, &e}))).And(C().Col("delete_at").IsNotNull())
fmt.Println(query.Sql())

query = C().Col("name").Ne(Literal("wubin")).Or(C().Col("create_at").Lt(Func("now()")))
fmt.Println(query.Sql())

query = C().Col("name").Ne(Literal("wubin")).Or(C().Col("create_at").Lte(Func("now()")))
fmt.Println(query.Sql())

query = C().Col("name").Ne(Literal("wubin")).Or(C().Col("create_at").Gt(Func("now()")))
fmt.Println(query.Sql())

query = C().Col("name").Ne(Literal("wubin")).Or(C().Col("create_at").Gte(Func("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(Literal("wubin")).Or(C().Col("school").Eq(Literal("havard"))).
	And(C().Col("age").Eq(Literal(18))).
	Or(C().Col("score").Gte(Literal(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(Literal(1))
where = where.And(C().Col("delete_at").IsNull())
where = where.Append(page)
fmt.Println(where.Sql())

where = C().Col("project_id").Eq(Literal(1))
where = where.And(C().Col("delete_at").IsNull())
where = where.Append(String("for update"))
fmt.Println(where.Sql())
Output:

((`name` = 'wubin' or `school` = 'havard') and `age` = '18')
((`name` = 'wubin' or `school` = 'havard') and `delete_at` is not null)
((`name` = 'wubin' or `school` in ('havard')) and `delete_at` is not null)
((`name` = 'wubin' or `school` in ('havard','beijing unv')) and `delete_at` is not null)
((`name` = 'wubin' or `age` in ('10','5')) and `delete_at` is not null)
(`name` != 'wubin' or `create_at` < now())
(`name` != 'wubin' or `create_at` <= now())
(`name` != 'wubin' or `create_at` > now())
(`name` != 'wubin' or `create_at` >= now())
order by create_at desc,score asc limit 30,5
7
order by score asc limit 20,10
(((`name` = 'wubin' or `school` = 'havard') and `age` = '18') or `score` >= '90')
(`project_id` = '1' and `delete_at` is null) order by create_at desc limit 0,1
(`project_id` = '1' and `delete_at` is null) for update

func C

func C() Criteria

C new a Criteria

func (Criteria) And added in v0.6.7

func (c Criteria) And(cri Base) Where

And concat another sql expression builder with And

func (Criteria) Append added in v0.6.7

func (c Criteria) Append(cri Base) Where

Append concat another sql expression builder with Append

func (Criteria) Col added in v0.6.7

func (c Criteria) Col(col string) Criteria

Col set column name

func (Criteria) Eq added in v0.6.7

func (c Criteria) Eq(val Val) Criteria

Eq set = operator and column value

func (Criteria) Gt added in v0.6.7

func (c Criteria) Gt(val Val) Criteria

Gt set > operator and column value

func (Criteria) Gte added in v0.6.7

func (c Criteria) Gte(val Val) Criteria

Gte set >= operator and column value

func (Criteria) In added in v0.6.7

func (c Criteria) In(val Val) Criteria

In set in operator and column value, val should be a slice type value

func (Criteria) IsNotNull added in v0.6.7

func (c Criteria) IsNotNull() Criteria

IsNotNull set is not null

func (Criteria) IsNull added in v0.6.7

func (c Criteria) IsNull() Criteria

IsNull set is null

func (Criteria) Lt added in v0.6.7

func (c Criteria) Lt(val Val) Criteria

Lt set < operator and column value

func (Criteria) Lte added in v0.6.7

func (c Criteria) Lte(val Val) Criteria

Lte set <= operator and column value

func (Criteria) Ne added in v0.6.7

func (c Criteria) Ne(val Val) Criteria

Ne set != operator and column value

func (Criteria) Or added in v0.6.7

func (c Criteria) Or(cri Base) Where

Or concat another sql expression builder with Or

func (Criteria) Sql added in v0.6.7

func (c Criteria) Sql() string

Sql implement Base interface, return sql expression

type Order

type Order struct {
	Col  string
	Sort sortenum.Sort
}

Order by Col Sort

type Page

type Page struct {
	Orders []Order
	Offset int
	Size   int
}

Page a sql expression builder for order by clause

func P

func P() Page

P new a Page

func (Page) Limit

func (p Page) Limit(offset, size int) Page

Limit set Offset and Size

func (Page) Order

func (p Page) Order(o Order) Page

Order append an Order

func (Page) Sql

func (p Page) Sql() string

Sql implement Base interface, order by age desc limit 2,1

type PageRet

type PageRet struct {
	Items    interface{}
	PageNo   int
	PageSize int
	Total    int
	HasNext  bool
}

PageRet wrap page query result

func NewPageRet

func NewPageRet(page Page) PageRet

NewPageRet new a PageRet

type Q

type Q interface {
	Base
	And(q Base) Where
	Or(q Base) Where
	Append(q Base) Where
}

Q used for building sql expression

type String added in v0.7.4

type String string

String is an alias of string

func (String) Sql added in v0.7.4

func (s String) Sql() string

Sql implements Base

type Val

type Val struct {
	Data interface{}
	Type valtypeenum.ValType
}

Val wrap column value

func Func

func Func(data string) Val

Func new database built-in function value

func Literal

func Literal(data interface{}) Val

Literal new literal 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

func (Where) And added in v0.6.7

func (w Where) And(whe Base) Where

And concat another sql expression builder with And

func (Where) Append added in v0.6.7

func (w Where) Append(whe Base) Where

Append concat another sql expression builder with Append

func (Where) Or added in v0.6.7

func (w Where) Or(whe Base) Where

Or concat another sql expression builder with Or

func (Where) Sql added in v0.6.7

func (w Where) Sql() string

Sql implement Base interface, return string sql expression

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL