query

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2022 License: Apache-2.0 Imports: 15 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ArrayToMap

func ArrayToMap(data interface{}, tag string) interface{}

ArrayToMap 数组转映射

func Column

func Column[T, R any](data []T, column string) []R

Column extract column from table

  • First Argument:table
  • Second Argument:column name result := query.Column(users, "UserID") userIDs := result.([]int)

func ColumnMacroRegister

func ColumnMacroRegister[T, R any](data []T, column string, handler ColumnMacroHandler[T, R])

ColumnMacroRegister 注册

func ColumnMap

func ColumnMap[T any, K comparable, R map[K]T | map[K][]T](data []T, column string) R

ColumnMap generate a map from table,key is column value and value is it's row

  • First Argument:table
  • Second Argument:column name result = query.ColumnMap(users, "UserID") userMap := result.(map[int]User)

func ColumnMapMacroRegister

func ColumnMapMacroRegister[T any, K comparable, R map[K]T | map[K][]T](data []T, column string, handler ColumnMapMacroHandler[T, K, R])

ColumnMapMacroRegister 注册

func Combine

func Combine[L, R, LR any](leftData []L, rightData []R, combineFuctor func(L, R) LR) []LR

Combine combine data from two table , one by one

  • First Argument:left table
  • Second Argument:right table
  • Third Argument:combine rule result = query.Combine(admins, users, func(admin Admin, user User) AdminUser { return AdminUser{ AdminID: admin.AdminID, Level: admin.Level, Name: user.Name, CreateTime: user.CreateTime, } }) combine := result.([]AdminUser)

func CombineMacroRegister

func CombineMacroRegister[L, R, LR any](leftData []L, rightData []R, combineFuctor func(L, R) LR, handler CombineMacroHandler[L, R, LR])

CombineMacroRegister 注册

func Distinct

func Distinct[T any](data []T, columnNames string) []T

Distinct unique by column

result := query.Distinct([]User{}, "Name")
dis := result.([]User{})

func Group

func Group[T, E any, R *E | []E](data []T, groupType string, groupFunctor func([]T) E) R

Group group data from table

  • First Argument: left table
  • Second Argument: group column name
  • Third Argument: group rule result = query.Group(users, "UserID", func(users []User) Department { return Department{ Employees: users, } }) group := result.([]Department)

func GroupMacroRegister

func GroupMacroRegister[T, E any, R *E | []E](data []T, groupType string, groupFunctor func([]T) E, handler GroupMacroHandler[T, E, R])

GroupMacroRegister 注册

func InnerJoin

func InnerJoin[L, R, LR any](leftData []L, rightData []R, joinType string, joinFuctor func(L, R) LR) []LR

InnerJoin see LeftJoin

func Join

func Join[L, R, LR any](leftData []L, rightData []R, joinPlace, joinType string, joinFuctor func(L, R) LR) []LR

Join see LeftJoin

func JoinMacroRegister

func JoinMacroRegister[L, R, LR any](leftData []L, rightData []R, joinPlace, joinType string, joinFuctor func(L, R) LR, handler JoinMacroHandler[L, R, LR])

JoinMacroRegister 注册

func LeftJoin

func LeftJoin[L, R, LR any](leftData []L, rightData []R, joinType string, joinFuctor func(L, R) LR) []LR

LeftJoin join data from two table,support LeftJoin,RightJoin,InnerJoin和OuterJoin

  • First Argument: left table
  • Second Argument: right table
  • Third Argument: join condition
  • Forth Argument: join rule result = query.LeftJoin(admins, users, "AdminID = UserID", func(admin Admin, user User) AdminUser { return AdminUser{ AdminID: admin.AdminID, Level: admin.Level, Name: user.Name, CreateTime: user.CreateTime, } }) join := result.([]AdminUser)

func MapToArray

func MapToArray(data interface{}, target interface{}, tag string) error

MapToArray 映射转数组

func Max

func Max[T Number](data []T) T

Max get max value from table. only support int, float32, float64 type

func Min

func Min[T Number](data []T) T

Min get min value from table. only support int, float32, float64 type

func OuterJoin

func OuterJoin[L, R, LR any](leftData []L, rightData []R, joinType string, joinFuctor func(L, R) LR) []LR

OuterJoin see LeftJoin

func Reduce

func Reduce[T, R any](data []T, reduceFuctor func(R, T) R, resultReduce R) R

Reduce reduce from list to single

query.Reduce([]User{}, func(sum int, singleData User) int {
    return 1
}, 0)

func ReflectWarning

func ReflectWarning(isWarning bool)

ReflectWarning 警告

func Reverse

func Reverse[T any](data []T) []T

Reverse reverse data in table

query.Reverse(
    []User{},
)

func RightJoin

func RightJoin[L, R, LR any](leftData []L, rightData []R, joinType string, joinFuctor func(L, R) LR) []LR

RightJoin see LeftJoin

func Select

func Select[T, R any](data []T, selectFunctor func(a T) R) []R

Select select data from table

  • First Argument:table
  • Second Argument:select rule result = query.Select(users, func(a User) Sex { if len(a.Name) >= 3 && a.Name[0:3] == "Man" { return Sex{IsMale: true} } return Sex{IsMale: false} }) sel := result.([]Sex)

func SelectMacroRegister

func SelectMacroRegister[T, R any](data []T, selectFunctor func(a T) R, handler SelectMacroHandler[T, R])

SelectMacroRegister 注册器

func Sort

func Sort[T any](data []T, sortType string) []T

Sort sort data from table,support multiple column,for Example: UserID desc,Age asc

  • First Argument:table
  • Second Argument:sort condition result = query.Sort(users, "UserID asc") sort := result.([]User)

func SortInternal

func SortInternal(length int, lessHandler func(i, j int) int, swapHandler func(i, j int))

SortInternal 排序

func SortMacroRegister

func SortMacroRegister[T any](data []T, sortType string, handler SortMacroHandler[T])

SortMacroRegister 注册

func Sum

func Sum[T Number](data []T) T

Sum get the sum of data. only support int, float32, float64 type

func Where

func Where[T any](data []T, whereFuctor func(T) bool) []T

Where filter data from table

  • First Argument:table
  • Second Argument:filter rule result = query.Where(users, func(a User) bool { if len(a.Name) >= 3 && a.Name[0:3] == "Man" { return true } return false }) where := result.([]User)

func WhereMacroRegister

func WhereMacroRegister[T any](data []T, whereFunctor func(T) bool, handler WhereMacroHandler[T])

WhereMacroRegister 注册器

Types

type ColumnMacroHandler

type ColumnMacroHandler[T, R any] func(data []T, column string) []R

ColumnMacroHandler 扩展类函数 QueryColumn

type ColumnMapMacroHandler

type ColumnMapMacroHandler[T any, K comparable, R map[K]T | map[K][]T] func(data []T, column string) R

ColumnMapMacroHandler 扩展类函数 QueryColumnMap

type CombineMacroHandler

type CombineMacroHandler[L, R, LR any] func(leftData []L, rightData []R, combineFuctor func(L, R) LR) []LR

CombineMacroHandler 扩展累函数 QueryCombine

type GroupMacroHandler

type GroupMacroHandler[T, E any, R *E | []E] func(data []T, groupType string, groupFunctor func([]T) E) R

GroupMacroHandler 基础类函数 QueryGroup

type JoinMacroHandler

type JoinMacroHandler[L, R, LR any] func(leftData []L, rightData []R, joinPlace, joinType string, joinFuctor func(L, R) LR) []LR

JoinMacroHandler 基础类函数QueryJoin

type Number added in v0.5.0

type Number interface {
	~int | ~float32 | ~float64
}

type SelectMacroHandler

type SelectMacroHandler[T, R any] func(data []T, selectFunctor func(a T) R) []R

SelectMacroHandler 基础类函数QuerySelect

type SortMacroHandler

type SortMacroHandler[T any] func(data []T, sortType string) []T

SortMacroHandler 处理器

type WhereMacroHandler

type WhereMacroHandler[T any] func(data []T, whereFunctor func(T) bool) []T

WhereMacroHandler 基础类函数QueryWhere

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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