light-core/pkg/mySql/Where.go
2024-12-17 22:47:16 +08:00

116 lines
2.6 KiB
Go

package mySql
import "fmt"
type Where struct {
Formula string
Values []interface{}
}
func NewWhere(formula string, values ...interface{}) *Where {
return &Where{
Formula: formula,
Values: values,
}
}
func NewWheres(where ...*Where) []*Where {
return where
}
func NewEqWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` = ?", colName),
Values: []interface{}{value},
}
}
func NewNeqWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` <> ?", colName),
Values: []interface{}{value},
}
}
func NewGtWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` > ?", colName),
Values: []interface{}{value},
}
}
func NewEgtWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` >= ?", colName),
Values: []interface{}{value},
}
}
func NewLtWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` < ?", colName),
Values: []interface{}{value},
}
}
func NewEltWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` <= ?", colName),
Values: []interface{}{value},
}
}
func NewNotLikeWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` NOT LIKE ?", colName),
Values: []interface{}{value},
}
}
func NewLikeWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` LIKE ?", colName),
Values: []interface{}{value},
}
}
func NewBetweenWhere(colName string, value1 interface{}, value2 interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("(`%s` BETWEEN ? AND ?)", colName),
Values: []interface{}{value1, value2},
}
}
func NewNotBetweenWhere(colName string, value1 interface{}, value2 interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("(`%s` NOT BETWEEN ? AND ?)", colName),
Values: []interface{}{value1, value2},
}
}
func NewInWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` IN ?", colName),
Values: []interface{}{value},
}
}
func NewNotInWhere(colName string, value interface{}) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` NOT IN ?", colName),
Values: []interface{}{value},
}
}
func NewIsNullWhere(colName string) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` IS NULL", colName),
Values: []interface{}{},
}
}
func NewIsNotNullWhere(colName string) *Where {
return &Where{
Formula: fmt.Sprintf("`%s` IS NOT NULL ?", colName),
Values: []interface{}{},
}
}