Documentation
¶
Overview ¶
Example (SearchMembers) ¶
package main
import (
"fmt"
"github.com/tetratom/qb"
)
var membersQueryBase = qb.Select("*").From("members")
func BuildQuery(name string, ordered bool) qb.Query {
q := membersQueryBase
if name != "" {
q = q.Where(qb.And("name = ?", name))
}
if ordered {
q = q.OrderBy("created_at DESC")
}
return q
}
func main() {
allMembers := BuildQuery("", false)
fmt.Println(allMembers.String())
allMembersOrdered := BuildQuery("", true)
fmt.Println(allMembersOrdered.String())
allMembersJohnDoe := BuildQuery("John Doe", false)
fmt.Println(allMembersJohnDoe.String())
allMembersJohnDoeOrdered := BuildQuery("John Doe", true)
fmt.Println(allMembersJohnDoeOrdered.String())
}
Output: SELECT * FROM members SELECT * FROM members ORDER BY created_at DESC SELECT * FROM members WHERE name = ? SELECT * FROM members WHERE name = ? ORDER BY created_at DESC
Index ¶
- Variables
- func As(lhs, alias string) string
- func Lit(s string, args ...interface{}) interface{}
- type Dialect
- type Predicate
- func (my Predicate) And(expr string, args ...interface{}) Predicate
- func (my Predicate) AndP(predicate Predicate) Predicate
- func (p Predicate) IsEmpty() bool
- func (my Predicate) Map(f func(p Predicate) Predicate) Predicate
- func (my Predicate) Or(expr string, args ...interface{}) Predicate
- func (my Predicate) OrP(predicate Predicate) Predicate
- func (p Predicate) String() string
- type Query
- func Append(expr string, args ...interface{}) Query
- func Begin() Query
- func Commit() Query
- func DeleteFrom(table string) Query
- func DeleteFromAs(table, alias string) Query
- func DialectOption(d Dialect) Query
- func InsertInto(expr string, columns ...string) Query
- func InsertValuesInto(table string, values Values) Query
- func Multiple(qs ...Query) Query
- func Select(columns ...string) Query
- func SelectColumn(expr string, args ...interface{}) Query
- func Subquery(sq Query) Query
- func Update(table string) Query
- func With(name string, query Query) Query
- func WithDialectDefault() Query
- func WithDialectGoracle() Query
- func WithDialectMssql() Query
- func WithDialectPQ() Query
- func (q Query) Append(expr string, args ...interface{}) Query
- func (q *Query) Args() []interface{}
- func (q Query) As(alias string) Query
- func (q Query) Begin() Query
- func (q Query) Build() (string, []interface{})
- func (q Query) Commit() Query
- func (q Query) DefaultValues() Query
- func (q Query) DeleteFrom(table string) Query
- func (q Query) DeleteFromAs(table, alias string) Query
- func (q Query) DialectOption(d Dialect) Query
- func (q Query) Except() Query
- func (q Query) ExceptAll() Query
- func (q Query) ForShare() Query
- func (q Query) ForUpdate() Query
- func (q Query) From(expr string) Query
- func (q Query) FromAs(table, alias string) Query
- func (q Query) FromSubquery(sq Query) Query
- func (q Query) FullJoinAsOn(table, alias string, predicate Predicate) Query
- func (q Query) FullJoinAsUsing(table, alias string, columns ...string) Query
- func (q Query) FullJoinOn(table string, predicate Predicate) Query
- func (q Query) FullJoinUsing(table string, columns ...string) Query
- func (q Query) GroupBy(fields ...string) Query
- func (q Query) Having(predicate Predicate) Query
- func (q Query) InsertInto(expr string, columns ...string) Query
- func (q Query) InsertValuesInto(table string, values Values) Query
- func (q Query) Intersect() Query
- func (q Query) IntersectAll() Query
- func (q Query) JoinAsOn(table, alias string, predicate Predicate) Query
- func (q Query) JoinAsUsing(table, alias string, columns ...string) Query
- func (q Query) JoinOn(table string, predicate Predicate) Query
- func (q Query) JoinUsing(table string, columns ...string) Query
- func (q Query) LeftJoinAsOn(table, alias string, predicate Predicate) Query
- func (q Query) LeftJoinAsUsing(table, alias string, columns ...string) Query
- func (q Query) LeftJoinOn(table string, predicate Predicate) Query
- func (q Query) LeftJoinUsing(table string, columns ...string) Query
- func (q Query) Limit(limit int64) Query
- func (q Query) LimitAll() Query
- func (q Query) Map(f func(q Query) Query) Query
- func (q Query) NaturalFullJoin(table string) Query
- func (q Query) NaturalFullJoinAs(table, alias string) Query
- func (q Query) NaturalJoin(table string) Query
- func (q Query) NaturalJoinAs(table, alias string) Query
- func (q Query) NaturalLeftJoin(table string) Query
- func (q Query) NaturalLeftJoinAs(table, alias string) Query
- func (q Query) NaturalRightJoin(table string) Query
- func (q Query) NaturalRightJoinAs(table, alias string) Query
- func (q Query) Offset(offset int64) Query
- func (q Query) OrderBy(first string, rest ...string) Query
- func (q Query) Returning(columns ...string) Query
- func (q Query) RightJoinAsOn(table, alias string, predicate Predicate) Query
- func (q Query) RightJoinAsUsing(table, alias string, columns ...string) Query
- func (q Query) RightJoinOn(table string, predicate Predicate) Query
- func (q Query) RightJoinUsing(table string, columns ...string) Query
- func (q *Query) SQL() string
- func (q Query) Select(columns ...string) Query
- func (q Query) SelectColumn(expr string, args ...interface{}) Query
- func (q Query) Set(expr string, args ...interface{}) Query
- func (q Query) SetValues(values Values) Query
- func (q Query) String() string
- func (q Query) Subquery(sq Query) Query
- func (q Query) Union() Query
- func (q Query) UnionAll() Query
- func (q Query) Update(table string) Query
- func (q Query) Using(table string) Query
- func (q Query) UsingAs(table, alias string) Query
- func (q Query) ValueTuples(tuples ...[]interface{}) Query
- func (q Query) Values(values ...interface{}) Query
- func (q Query) Where(pred Predicate) Query
- func (q Query) With(name string, query Query) Query
- type Values
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var NULL = Lit(`NULL`)
Functions ¶
Types ¶
type Query ¶
type Query struct {
Dialect
// contains filtered or unexported fields
}
func DeleteFrom ¶
func DeleteFromAs ¶
func DialectOption ¶
func InsertInto ¶
func InsertValuesInto ¶
func Multiple ¶
Creates a query with multiple statements.
qs0; [qs1; [qs2; ...]]
Example ¶
package main
import (
"fmt"
"github.com/tetratom/qb"
)
func main() {
q := qb.Multiple(
qb.Select("*").From("t1"),
qb.Select("*").From("t2"))
fmt.Print(q.String())
}
Output: SELECT * FROM t1 ; SELECT * FROM t2 ;
func SelectColumn ¶
func WithDialectDefault ¶
func WithDialectDefault() Query
func WithDialectGoracle ¶
func WithDialectGoracle() Query
func WithDialectMssql ¶
func WithDialectMssql() Query
func WithDialectPQ ¶
func WithDialectPQ() Query
func (Query) DefaultValues ¶
func (Query) DeleteFrom ¶
func (Query) DeleteFromAs ¶
func (Query) DialectOption ¶
func (Query) FromSubquery ¶
func (Query) FullJoinAsOn ¶
func (Query) FullJoinAsUsing ¶
func (Query) GroupBy ¶
Appends a GROUP BY clause.
... GROUP BY field0[, field1[, ...]].
Example ¶
package main
import (
"fmt"
"github.com/tetratom/qb"
)
func main() {
q := qb.Select("*").From("t1").GroupBy("a", "b")
fmt.Print(q.String())
}
Output: SELECT * FROM t1 GROUP BY a, b
func (Query) Having ¶
Appends a HAVING clause. This should follow a GROUP BY clause.
... HAVING predicate
Example ¶
package main
import (
"fmt"
"github.com/tetratom/qb"
)
func main() {
q := qb.Select("*").From("t1").GroupBy("a", "b").Having(qb.And("a < ?", 100))
fmt.Print(q.String())
}
Output: SELECT * FROM t1 GROUP BY a, b HAVING a < ?
func (Query) IntersectAll ¶
func (Query) LeftJoinAsOn ¶
func (Query) LeftJoinAsUsing ¶
func (Query) NaturalFullJoin ¶
Appends a NATURAL FULL JOIN clause.
... NATURAL FULL JOIN table
Example ¶
package main
import (
"fmt"
"github.com/tetratom/qb"
)
func main() {
q := qb.Select("*").From("t1").NaturalFullJoin("t2")
fmt.Print(q.String())
}
Output: SELECT * FROM t1 NATURAL FULL JOIN t2
func (Query) NaturalFullJoinAs ¶
func (Query) NaturalJoin ¶
func (Query) NaturalJoinAs ¶
func (Query) NaturalLeftJoin ¶
func (Query) NaturalLeftJoinAs ¶
func (Query) NaturalRightJoin ¶
func (Query) NaturalRightJoinAs ¶
func (Query) RightJoinAsOn ¶
func (Query) RightJoinAsUsing ¶
func (Query) SelectColumn ¶
func (Query) ValueTuples ¶
Click to show internal directories.
Click to hide internal directories.