Versions in this module Expand all Collapse all v1 v1.42.2 Jul 13, 2026 Changes in this version + var DBTag = "db" + var DefaultFieldMapper FieldMapperFunc + var DefaultFlavor = MySQL + var DefaultGetAlias GetAliasFunc + var ErrInterpolateMissingArgs = errors.New("go-sqlbuilder: not enough args when interpolating") + var ErrInterpolateNotImplemented = errors.New("go-sqlbuilder: interpolation for this flavor is not implemented") + var ErrInterpolateUnsupportedArgs = errors.New("go-sqlbuilder: unsupported args when interpolating") + var FieldAs = "fieldas" + var FieldOpt = "fieldopt" + var FieldTag = "fieldtag" + var NoExpand = false + func Escape(ident string) string + func EscapeAll(ident ...string) []string + func Flatten(slices interface{}) (flattened []interface{}) + func List(arg interface{}) interface + func Named(name string, arg interface{}) interface + func Raw(expr string) interface + func SnakeCaseMapper(field string) string + func Tuple(values ...interface{}) interface + func TupleNames(names ...string) string + type Args struct + Flavor Flavor + func (args *Args) Add(arg interface{}) string + func (args *Args) Compile(format string, initialValue ...interface{}) (query string, values []interface{}) + func (args *Args) CompileWithFlavor(format string, flavor Flavor, initialValue ...interface{}) (query string, values []interface{}) + func (args *Args) Replace(placeholder string, arg interface{}) + func (args *Args) Value(arg string) interface{} + type Builder interface + Build func() (sql string, args []interface{}) + BuildWithFlavor func(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + Flavor func() Flavor + func Build(format string, arg ...interface{}) Builder + func BuildNamed(format string, named map[string]interface{}) Builder + func Buildf(format string, arg ...interface{}) Builder + func WithFlavor(builder Builder, flavor Flavor) Builder + type CTEBuilder struct + func With(tables ...*CTEQueryBuilder) *CTEBuilder + func WithRecursive(tables ...*CTEQueryBuilder) *CTEBuilder + func (cteb *CTEBuilder) Build() (sql string, args []interface{}) + func (cteb *CTEBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (cteb *CTEBuilder) Clone() *CTEBuilder + func (cteb *CTEBuilder) DeleteFrom(table string) *DeleteBuilder + func (cteb *CTEBuilder) Flavor() Flavor + func (cteb *CTEBuilder) SQL(sql string) *CTEBuilder + func (cteb *CTEBuilder) Select(col ...string) *SelectBuilder + func (cteb *CTEBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (cteb *CTEBuilder) String() string + func (cteb *CTEBuilder) TableNames() []string + func (cteb *CTEBuilder) Update(table string) *UpdateBuilder + func (cteb *CTEBuilder) With(queries ...*CTEQueryBuilder) *CTEBuilder + func (cteb *CTEBuilder) WithRecursive(queries ...*CTEQueryBuilder) *CTEBuilder + type CTEQueryBuilder struct + func CTEQuery(name string, cols ...string) *CTEQueryBuilder + func CTETable(name string, cols ...string) *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) AddToTableList() *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) As(builder Builder) *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) Build() (sql string, args []interface{}) + func (ctetb *CTEQueryBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (ctetb *CTEQueryBuilder) Clone() *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) Flavor() Flavor + func (ctetb *CTEQueryBuilder) SQL(sql string) *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (ctetb *CTEQueryBuilder) ShouldAddToTableList() bool + func (ctetb *CTEQueryBuilder) String() string + func (ctetb *CTEQueryBuilder) Table(name string, cols ...string) *CTEQueryBuilder + func (ctetb *CTEQueryBuilder) TableName() string + type CTETableBuilder = CTEQueryBuilder + type Cond struct + Args *Args + func NewCond() *Cond + func (c *Cond) All(field, op string, values ...interface{}) string + func (c *Cond) And(andExpr ...string) string + func (c *Cond) Any(field, op string, values ...interface{}) string + func (c *Cond) Between(field string, lower, upper interface{}) string + func (c *Cond) E(field string, value interface{}) string + func (c *Cond) EQ(field string, value interface{}) string + func (c *Cond) Equal(field string, value interface{}) string + func (c *Cond) Exists(subquery interface{}) string + func (c *Cond) G(field string, value interface{}) string + func (c *Cond) GE(field string, value interface{}) string + func (c *Cond) GT(field string, value interface{}) string + func (c *Cond) GTE(field string, value interface{}) string + func (c *Cond) GreaterEqualThan(field string, value interface{}) string + func (c *Cond) GreaterThan(field string, value interface{}) string + func (c *Cond) ILike(field string, value interface{}) string + func (c *Cond) In(field string, values ...interface{}) string + func (c *Cond) IsDistinctFrom(field string, value interface{}) string + func (c *Cond) IsNotDistinctFrom(field string, value interface{}) string + func (c *Cond) IsNotNull(field string) string + func (c *Cond) IsNull(field string) string + func (c *Cond) L(field string, value interface{}) string + func (c *Cond) LE(field string, value interface{}) string + func (c *Cond) LT(field string, value interface{}) string + func (c *Cond) LTE(field string, value interface{}) string + func (c *Cond) LessEqualThan(field string, value interface{}) string + func (c *Cond) LessThan(field string, value interface{}) string + func (c *Cond) Like(field string, value interface{}) string + func (c *Cond) NE(field string, value interface{}) string + func (c *Cond) NEQ(field string, value interface{}) string + func (c *Cond) Not(notExpr string) string + func (c *Cond) NotBetween(field string, lower, upper interface{}) string + func (c *Cond) NotEqual(field string, value interface{}) string + func (c *Cond) NotExists(subquery interface{}) string + func (c *Cond) NotILike(field string, value interface{}) string + func (c *Cond) NotIn(field string, values ...interface{}) string + func (c *Cond) NotLike(field string, value interface{}) string + func (c *Cond) Or(orExpr ...string) string + func (c *Cond) Some(field, op string, values ...interface{}) string + func (c *Cond) Var(value interface{}) string + type CreateTableBuilder struct + func CreateTable(table string) *CreateTableBuilder + func NewCreateTableBuilder() *CreateTableBuilder + func (ctb *CreateTableBuilder) Build() (sql string, args []interface{}) + func (ctb *CreateTableBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (ctb *CreateTableBuilder) Clone() *CreateTableBuilder + func (ctb *CreateTableBuilder) CreateTable(table string) *CreateTableBuilder + func (ctb *CreateTableBuilder) CreateTempTable(table string) *CreateTableBuilder + func (ctb *CreateTableBuilder) Define(def ...string) *CreateTableBuilder + func (ctb *CreateTableBuilder) Flavor() Flavor + func (ctb *CreateTableBuilder) IfNotExists() *CreateTableBuilder + func (ctb *CreateTableBuilder) NumDefine() int + func (ctb *CreateTableBuilder) Option(opt ...string) *CreateTableBuilder + func (ctb *CreateTableBuilder) SQL(sql string) *CreateTableBuilder + func (ctb *CreateTableBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (ctb *CreateTableBuilder) String() string + func (ctb *CreateTableBuilder) Var(arg interface{}) string + type DeleteBuilder struct + func DeleteFrom(table ...string) *DeleteBuilder + func NewDeleteBuilder() *DeleteBuilder + func (db *DeleteBuilder) AddWhereClause(whereClause *WhereClause) *DeleteBuilder + func (db *DeleteBuilder) Asc() *DeleteBuilder + func (db *DeleteBuilder) Build() (sql string, args []interface{}) + func (db *DeleteBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (db *DeleteBuilder) Clone() *DeleteBuilder + func (db *DeleteBuilder) DeleteFrom(table ...string) *DeleteBuilder + func (db *DeleteBuilder) Desc() *DeleteBuilder + func (db *DeleteBuilder) Flavor() Flavor + func (db *DeleteBuilder) Limit(limit int) *DeleteBuilder + func (db *DeleteBuilder) OrderBy(col ...string) *DeleteBuilder + func (db *DeleteBuilder) OrderByAsc(col string) *DeleteBuilder + func (db *DeleteBuilder) OrderByDesc(col string) *DeleteBuilder + func (db *DeleteBuilder) Returning(col ...string) *DeleteBuilder + func (db *DeleteBuilder) SQL(sql string) *DeleteBuilder + func (db *DeleteBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (db *DeleteBuilder) String() string + func (db *DeleteBuilder) TableNames() []string + func (db *DeleteBuilder) Using(table ...string) *DeleteBuilder + func (db *DeleteBuilder) Where(andExpr ...string) *DeleteBuilder + func (db *DeleteBuilder) With(builder *CTEBuilder) *DeleteBuilder + type FieldMapperFunc func(name string) string + type Flavor int + const CQL + const Datastore + const Doris + const Informix + const MySQL + const Oracle + const PostgreSQL + const Presto + const SQLServer + const SQLite + func (f Flavor) Interpolate(sql string, args []interface{}) (string, error) + func (f Flavor) NewCTEBuilder() *CTEBuilder + func (f Flavor) NewCTEQueryBuilder() *CTEQueryBuilder + func (f Flavor) NewCreateTableBuilder() *CreateTableBuilder + func (f Flavor) NewDeleteBuilder() *DeleteBuilder + func (f Flavor) NewInsertBuilder() *InsertBuilder + func (f Flavor) NewSelectBuilder() *SelectBuilder + func (f Flavor) NewUnionBuilder() *UnionBuilder + func (f Flavor) NewUpdateBuilder() *UpdateBuilder + func (f Flavor) PrepareInsertIgnore(table string, ib *InsertBuilder) + func (f Flavor) Quote(name string) string + func (f Flavor) String() string + type GetAliasFunc func(field *reflect.StructField) (alias string, dbtag string) + type InsertBuilder struct + func InsertIgnoreInto(table string) *InsertBuilder + func InsertInto(table string) *InsertBuilder + func NewInsertBuilder() *InsertBuilder + func ReplaceInto(table string) *InsertBuilder + func (ib *InsertBuilder) Build() (sql string, args []interface{}) + func (ib *InsertBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (ib *InsertBuilder) Clone() *InsertBuilder + func (ib *InsertBuilder) Cols(col ...string) *InsertBuilder + func (ib *InsertBuilder) Flavor() Flavor + func (ib *InsertBuilder) InsertIgnoreInto(table string) *InsertBuilder + func (ib *InsertBuilder) InsertInto(table string) *InsertBuilder + func (ib *InsertBuilder) NumValue() int + func (ib *InsertBuilder) ReplaceInto(table string) *InsertBuilder + func (ib *InsertBuilder) Returning(col ...string) *InsertBuilder + func (ib *InsertBuilder) SQL(sql string) *InsertBuilder + func (ib *InsertBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (ib *InsertBuilder) String() string + func (ib *InsertBuilder) Values(value ...interface{}) *InsertBuilder + func (ib *InsertBuilder) Var(arg interface{}) string + func (isb *InsertBuilder) Select(col ...string) *SelectBuilder + type JoinOption string + const FullJoin + const FullOuterJoin + const InnerJoin + const LeftJoin + const LeftOuterJoin + const RightJoin + const RightOuterJoin + type SelectBuilder struct + func NewSelectBuilder() *SelectBuilder + func Select(col ...string) *SelectBuilder + func (sb *SelectBuilder) AddWhereClause(whereClause *WhereClause) *SelectBuilder + func (sb *SelectBuilder) As(name, alias string) string + func (sb *SelectBuilder) Asc() *SelectBuilder + func (sb *SelectBuilder) Build() (sql string, args []interface{}) + func (sb *SelectBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (sb *SelectBuilder) BuilderAs(builder Builder, alias string) string + func (sb *SelectBuilder) Clone() *SelectBuilder + func (sb *SelectBuilder) Desc() *SelectBuilder + func (sb *SelectBuilder) Distinct() *SelectBuilder + func (sb *SelectBuilder) Flavor() Flavor + func (sb *SelectBuilder) ForShare(tables ...string) *SelectBuilder + func (sb *SelectBuilder) ForUpdate(tables ...string) *SelectBuilder + func (sb *SelectBuilder) From(table ...string) *SelectBuilder + func (sb *SelectBuilder) GroupBy(col ...string) *SelectBuilder + func (sb *SelectBuilder) Having(andExpr ...string) *SelectBuilder + func (sb *SelectBuilder) Join(table string, onExpr ...string) *SelectBuilder + func (sb *SelectBuilder) JoinWithOption(option JoinOption, table string, onExpr ...string) *SelectBuilder + func (sb *SelectBuilder) LateralAs(builder Builder, alias string) string + func (sb *SelectBuilder) Limit(limit int) *SelectBuilder + func (sb *SelectBuilder) NoWait() *SelectBuilder + func (sb *SelectBuilder) NumCol() int + func (sb *SelectBuilder) Offset(offset int) *SelectBuilder + func (sb *SelectBuilder) OrderBy(col ...string) *SelectBuilder + func (sb *SelectBuilder) OrderByAsc(col string) *SelectBuilder + func (sb *SelectBuilder) OrderByDesc(col string) *SelectBuilder + func (sb *SelectBuilder) SQL(sql string) *SelectBuilder + func (sb *SelectBuilder) Select(col ...string) *SelectBuilder + func (sb *SelectBuilder) SelectMore(col ...string) *SelectBuilder + func (sb *SelectBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (sb *SelectBuilder) SkipLocked() *SelectBuilder + func (sb *SelectBuilder) String() string + func (sb *SelectBuilder) TableNames() []string + func (sb *SelectBuilder) Where(andExpr ...string) *SelectBuilder + func (sb *SelectBuilder) With(builder *CTEBuilder) *SelectBuilder + type Struct struct + Flavor Flavor + func NewStruct(structValue interface{}) *Struct + func (s *Struct) Addr(st interface{}) []interface{} + func (s *Struct) AddrForTag(tag string, st interface{}) []interface{} + func (s *Struct) AddrWithCols(cols []string, st interface{}) []interface{} + func (s *Struct) Columns() []string + func (s *Struct) ColumnsForTag(tag string) (cols []string) + func (s *Struct) DeleteFrom(table string) *DeleteBuilder + func (s *Struct) For(flavor Flavor) *Struct + func (s *Struct) ForeachRead(trans func(dbtag string, isQuoted bool, field reflect.StructField)) + func (s *Struct) ForeachWrite(trans func(dbtag string, isQuoted bool, field reflect.StructField)) + func (s *Struct) InsertIgnoreInto(table string, value ...interface{}) *InsertBuilder + func (s *Struct) InsertIgnoreIntoForTag(table string, tag string, value ...interface{}) *InsertBuilder + func (s *Struct) InsertInto(table string, value ...interface{}) *InsertBuilder + func (s *Struct) InsertIntoForTag(table string, tag string, value ...interface{}) *InsertBuilder + func (s *Struct) ReplaceInto(table string, value ...interface{}) *InsertBuilder + func (s *Struct) ReplaceIntoForTag(table string, tag string, value ...interface{}) *InsertBuilder + func (s *Struct) SelectFrom(table string) *SelectBuilder + func (s *Struct) SelectFromForTag(table string, tag string) (sb *SelectBuilder) + func (s *Struct) Update(table string, value interface{}) *UpdateBuilder + func (s *Struct) UpdateForTag(table string, tag string, value interface{}) *UpdateBuilder + func (s *Struct) Values(st interface{}) []interface{} + func (s *Struct) ValuesForTag(tag string, value interface{}) (values []interface{}) + func (s *Struct) WithFieldMapper(mapper FieldMapperFunc) *Struct + func (s *Struct) WithTag(tags ...string) *Struct + func (s *Struct) WithoutTag(tags ...string) *Struct + type UnionBuilder struct + func NewUnionBuilder() *UnionBuilder + func Union(builders ...Builder) *UnionBuilder + func UnionAll(builders ...Builder) *UnionBuilder + func (ub *UnionBuilder) Asc() *UnionBuilder + func (ub *UnionBuilder) Build() (sql string, args []interface{}) + func (ub *UnionBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (ub *UnionBuilder) Clone() *UnionBuilder + func (ub *UnionBuilder) Desc() *UnionBuilder + func (ub *UnionBuilder) Flavor() Flavor + func (ub *UnionBuilder) Limit(limit int) *UnionBuilder + func (ub *UnionBuilder) Offset(offset int) *UnionBuilder + func (ub *UnionBuilder) OrderBy(col ...string) *UnionBuilder + func (ub *UnionBuilder) OrderByAsc(col string) *UnionBuilder + func (ub *UnionBuilder) OrderByDesc(col string) *UnionBuilder + func (ub *UnionBuilder) SQL(sql string) *UnionBuilder + func (ub *UnionBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (ub *UnionBuilder) String() string + func (ub *UnionBuilder) Union(builders ...Builder) *UnionBuilder + func (ub *UnionBuilder) UnionAll(builders ...Builder) *UnionBuilder + func (ub *UnionBuilder) Var(arg interface{}) string + type UpdateBuilder struct + func NewUpdateBuilder() *UpdateBuilder + func Update(table ...string) *UpdateBuilder + func (ub *UpdateBuilder) Add(field string, value interface{}) string + func (ub *UpdateBuilder) AddWhereClause(whereClause *WhereClause) *UpdateBuilder + func (ub *UpdateBuilder) Asc() *UpdateBuilder + func (ub *UpdateBuilder) Assign(field string, value interface{}) string + func (ub *UpdateBuilder) Build() (sql string, args []interface{}) + func (ub *UpdateBuilder) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (ub *UpdateBuilder) Clone() *UpdateBuilder + func (ub *UpdateBuilder) Decr(field string) string + func (ub *UpdateBuilder) Desc() *UpdateBuilder + func (ub *UpdateBuilder) Div(field string, value interface{}) string + func (ub *UpdateBuilder) Flavor() Flavor + func (ub *UpdateBuilder) From(table ...string) *UpdateBuilder + func (ub *UpdateBuilder) Incr(field string) string + func (ub *UpdateBuilder) Limit(limit int) *UpdateBuilder + func (ub *UpdateBuilder) Mul(field string, value interface{}) string + func (ub *UpdateBuilder) NumAssignment() int + func (ub *UpdateBuilder) OrderBy(col ...string) *UpdateBuilder + func (ub *UpdateBuilder) OrderByAsc(col string) *UpdateBuilder + func (ub *UpdateBuilder) OrderByDesc(col string) *UpdateBuilder + func (ub *UpdateBuilder) Returning(col ...string) *UpdateBuilder + func (ub *UpdateBuilder) SQL(sql string) *UpdateBuilder + func (ub *UpdateBuilder) Set(assignment ...string) *UpdateBuilder + func (ub *UpdateBuilder) SetFlavor(flavor Flavor) (old Flavor) + func (ub *UpdateBuilder) SetMore(assignment ...string) *UpdateBuilder + func (ub *UpdateBuilder) String() string + func (ub *UpdateBuilder) Sub(field string, value interface{}) string + func (ub *UpdateBuilder) TableNames() (tableNames []string) + func (ub *UpdateBuilder) Update(table ...string) *UpdateBuilder + func (ub *UpdateBuilder) Where(andExpr ...string) *UpdateBuilder + func (ub *UpdateBuilder) With(builder *CTEBuilder) *UpdateBuilder + type WhereClause struct + func CopyWhereClause(whereClause *WhereClause) *WhereClause + func NewWhereClause() *WhereClause + func (wc *WhereClause) AddWhereClause(whereClause *WhereClause) *WhereClause + func (wc *WhereClause) AddWhereExpr(args *Args, andExpr ...string) *WhereClause + func (wc *WhereClause) Build() (sql string, args []interface{}) + func (wc *WhereClause) BuildWithFlavor(flavor Flavor, initialArg ...interface{}) (sql string, args []interface{}) + func (wc *WhereClause) Flavor() Flavor + func (wc *WhereClause) SetFlavor(flavor Flavor) (old Flavor)