Documentation
¶
Index ¶
- func BuildQueryWithParams(table string, filters map[string]interface{}, operators map[string]string, ...) string
- type Builder
- func (qb *Builder) Build() string
- func (qb *Builder) GroupBy(fields ...string) *Builder
- func (qb *Builder) Limit(n int) *Builder
- func (qb *Builder) Offset(n int) *Builder
- func (qb *Builder) OrderBy(field string, desc bool) *Builder
- func (qb *Builder) Select(fields []string) *Builder
- func (qb *Builder) Where(cond any) *Builder
- func (qb *Builder) WhereFromAny(filters any, operators map[string]string) *Builder
- func (qb *Builder) WhereFromAnys(raws ...any) *Builder
- func (qb *Builder) WhereFromMaps(filters map[string]interface{}, operators map[string]string) *Builder
- func (qb *Builder) WhereFromRaw(raws ...string) *Builder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder 用于构造 InfluxQL 查询
func NewQueryBuilder ¶
NewQueryBuilder 创建新的 QueryBuilder
func (*Builder) Where ¶
Where 接受任意类型的条件并分发处理: - string / []string -> WhereFromRaw - map[string]interface{} / map[string]any -> WhereFromMaps (operators=nil) 其它类型忽略返回原 qb
func (*Builder) WhereFromAny ¶
WhereFromAny 接受任意类型的 filters 并分发到相应处理: - map[string]interface{} / map[string]any -> WhereFromMaps - string -> WhereFromRaw - struct / *struct -> 提取导出字段 (优先使用 json tag) 并调用 WhereFromMaps - 其它 -> 尝试 fmt.Sprintf 转为字符串并当作 raw 条件
func (*Builder) WhereFromAnys ¶
WhereFromAnys 接收混合类型的条件并分发处理: - string / []string -> WhereFromRaw - []any -> 递归处理每个元素 - map[string]interface{} / map[string]any -> WhereFromMaps (operators=nil) - fmt.Stringer -> 使用 String() 其它类型尝试用 fmt.Sprintf("%v") 转为字符串并当作 raw 片段(若非空)
func (*Builder) WhereFromMaps ¶
func (qb *Builder) WhereFromMaps(filters map[string]interface{}, operators map[string]string) *Builder
WhereFromMaps 根据 filters 和 operators 构造 WHERE 子句 filters: map[field]value operators: map[field]operator (operator 支持: =, !=, >, >=, <, <=, in, regex)
func (*Builder) WhereFromRaw ¶
WhereFromRaw 接受一个或多个原始 WHERE 条件片段, 会去掉空白并移除可选的前缀 "WHERE",然后追加到 qb.where 中。