Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CTE ¶
type CTE struct { Name string Columns []string Subquery clause.Expression }
CTE common table expressions
type Except ¶ added in v0.2.0
type Except struct {
Statements []clause.Expression
}
Except is except clause
func NewExcept ¶ added in v0.2.0
func NewExcept(query interface{}, args ...interface{}) Except
NewExcept is easy to create new Except
// examples // SELECT * FROM `general_users` EXCEPT SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewExcept("SELECT * FROM `admin_users`")).Scan(&users) // SELECT * FROM `general_users` EXCEPT SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewExcept(db.Table("admin_users"))).Scan(&users) // SELECT * FROM `general_users` EXCEPT ALL SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewExcept("ALL ?", db.Table("admin_users"))).Scan(&users)
func (Except) MergeClause ¶ added in v0.2.0
MergeClause merge Except clauses
type Intersect ¶ added in v0.2.0
type Intersect struct {
Statements []clause.Expression
}
Intersect is intersect clause
func NewIntersect ¶ added in v0.2.0
func NewIntersect(query interface{}, args ...interface{}) Intersect
NewIntersect is easy to create new Intersect
// examples // SELECT * FROM `general_users` INTERSECT SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewIntersect("SELECT * FROM `admin_users`")).Scan(&users) // SELECT * FROM `general_users` INTERSECT SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewIntersect(db.Table("admin_users"))).Scan(&users) // SELECT * FROM `general_users` INTERSECT ALL SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewIntersect("ALL ?", db.Table("admin_users"))).Scan(&users)
func (Intersect) MergeClause ¶ added in v0.2.0
MergeClause merge Intersect clauses
type Union ¶
type Union struct {
Statements []clause.Expression
}
Union is union clause
func NewUnion ¶
func NewUnion(query interface{}, args ...interface{}) Union
NewUnion is easy to create new Union
// examples // SELECT * FROM `general_users` UNION SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewUnion("SELECT * FROM `admin_users`")).Scan(&users) // SELECT * FROM `general_users` UNION SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewUnion(db.Table("admin_users"))).Scan(&users) // SELECT * FROM `general_users` UNION ALL SELECT * FROM `admin_users` db.Table("general_users").Clauses(exclause.NewUnion("ALL ?", db.Table("admin_users"))).Scan(&users)
func (Union) MergeClause ¶
MergeClause merge Union clauses
type With ¶
With with clause
// examples // WITH `cte` AS (SELECT * FROM `users`) SELECT * FROM `cte` db.Clauses(exclause.With{CTEs: []exclause.CTE{{Name: "cte", Subquery: clause.Expr{SQL: "SELECT * FROM `users`"}}}}).Table("cte").Scan(&users) // WITH `cte` AS (SELECT * FROM `users`) SELECT * FROM `cte` db.Clauses(exclause.With{CTEs: []exclause.CTE{{Name: "cte", Subquery: exclause.Subquery{DB: db.Table("users")}}}}).Table("cte").Scan(&users) // WITH `cte` (`id`,`name`) AS (SELECT * FROM `users`) SELECT * FROM `cte` db.Clauses(exclause.With{CTEs: []exclause.CTE{{Name: "cte", Columns: []string{"id", "name"}, Subquery: exclause.Subquery{DB: db.Table("users")}}}}).Table("cte").Scan(&users) // WITH RECURSIVE `cte` AS (SELECT * FROM `users`) SELECT * FROM `cte` db.Clauses(exclause.With{Recursive: true, CTEs: []exclause.CTE{{Name: "cte", Subquery: exclause.Subquery{DB: db.Table("users")}}}}).Table("cte").Scan(&users)
func NewWith ¶
NewWith is easy to create new With
// examples // WITH `cte` AS (SELECT * FROM `users`) SELECT * FROM `cte` db.Clauses(exclause.NewWith("cte", "SELECT * FROM `users`")).Table("cte").Scan(&users) // WITH `cte` AS (SELECT * FROM `users` WHERE `name` = 'WinterYukky') SELECT * FROM `cte` db.Clauses(exclause.NewWith("cte", "SELECT * FROM `users` WHERE `name` = ?", "WinterYukky")).Table("cte").Scan(&users) // WITH `cte` AS (SELECT * FROM `users` WHERE `name` = 'WinterYukky') SELECT * FROM `cte` db.Clauses(exclause.NewWith("cte", db.Table("users").Where("`name` = ?", "WinterYukky"))).Table("cte").Scan(&users)
If you need more advanced WITH clause, you can see With struct.
func (With) MergeClause ¶
MergeClause merge With clauses
Click to show internal directories.
Click to hide internal directories.