package sql type Conditions struct { Conditions []string err error } func NewConditions() *Conditions { return &Conditions{ Conditions: make([]string, 0), } } func (conditions *Conditions) AddCondition(condition string) *Conditions { conditions.Conditions = append(conditions.Conditions, condition) return conditions } func (conditions *Conditions) Equal(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" = "+parsedValue) return conditions } func (conditions *Conditions) Like(columnName string, value string) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" LIKE "+parsedValue) return conditions } func (conditions *Conditions) In(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValues(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" IN "+parsedValue) return conditions } func (conditions *Conditions) NotIn(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValues(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" NOT IN "+parsedValue) return conditions } func (conditions *Conditions) Not(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" != "+parsedValue) return conditions } func (conditions *Conditions) LessThan(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" < "+parsedValue) return conditions } func (conditions *Conditions) LessThanAndEqual(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" <= "+parsedValue) return conditions } func (conditions *Conditions) GreaterThan(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" > "+parsedValue) return conditions } func (conditions *Conditions) GreaterThanAndEqual(columnName string, value any) *Conditions { if conditions.err != nil { return conditions } parsedValue, err := toSqlValue(value) if err != nil { conditions.err = err return conditions } conditions.Conditions = append(conditions.Conditions, "\""+columnName+"\" >= "+parsedValue) return conditions }