query

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildQueryWithParams

func BuildQueryWithParams(
	table string,
	filters map[string]interface{},
	operators map[string]string,
	fields []string,
) string

BuildQueryWithParams 兼容现有 client.go 的调用签名

Types

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

Builder 用于构造 InfluxQL 查询

func NewQueryBuilder

func NewQueryBuilder(table string) *Builder

NewQueryBuilder 创建新的 QueryBuilder

func (*Builder) Build

func (qb *Builder) Build() string

Build 生成最终的 InfluxQL 查询字符串

func (*Builder) GroupBy

func (qb *Builder) GroupBy(fields ...string) *Builder

GroupBy 设置 group by 字段

func (*Builder) Limit

func (qb *Builder) Limit(n int) *Builder

Limit 设置 limit

func (*Builder) Offset

func (qb *Builder) Offset(n int) *Builder

Offset 设置 offset

func (*Builder) OrderBy

func (qb *Builder) OrderBy(field string, desc bool) *Builder

OrderBy 设置排序,desc 为 true 时使用 DESC

func (*Builder) Select

func (qb *Builder) Select(fields []string) *Builder

Select 指定要查询的字段,传 nil 或 空数组 表示 "*"

func (*Builder) Where

func (qb *Builder) Where(cond any) *Builder

Where 接受任意类型的条件并分发处理: - string / []string -> WhereFromRaw - map[string]interface{} / map[string]any -> WhereFromMaps (operators=nil) 其它类型忽略返回原 qb

func (*Builder) WhereFromAny

func (qb *Builder) WhereFromAny(filters any, operators map[string]string) *Builder

WhereFromAny 接受任意类型的 filters 并分发到相应处理: - map[string]interface{} / map[string]any -> WhereFromMaps - string -> WhereFromRaw - struct / *struct -> 提取导出字段 (优先使用 json tag) 并调用 WhereFromMaps - 其它 -> 尝试 fmt.Sprintf 转为字符串并当作 raw 条件

func (*Builder) WhereFromAnys

func (qb *Builder) WhereFromAnys(raws ...any) *Builder

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

func (qb *Builder) WhereFromRaw(raws ...string) *Builder

WhereFromRaw 接受一个或多个原始 WHERE 条件片段, 会去掉空白并移除可选的前缀 "WHERE",然后追加到 qb.where 中。

Jump to

Keyboard shortcuts

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