123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package sqlbuilder
- import (
- "fmt"
- "strings"
- )
- type Cond struct {
- Args *Args
- }
- func (c *Cond) Equal(field string, value interface{}) string {
- return fmt.Sprintf("%s = %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) E(field string, value interface{}) string {
- return c.Equal(field, value)
- }
- func (c *Cond) NotEqual(field string, value interface{}) string {
- return fmt.Sprintf("%s <> %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) NE(field string, value interface{}) string {
- return c.NotEqual(field, value)
- }
- func (c *Cond) GreaterThan(field string, value interface{}) string {
- return fmt.Sprintf("%s > %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) G(field string, value interface{}) string {
- return c.GreaterThan(field, value)
- }
- func (c *Cond) GreaterEqualThan(field string, value interface{}) string {
- return fmt.Sprintf("%s >= %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) GE(field string, value interface{}) string {
- return c.GreaterEqualThan(field, value)
- }
- func (c *Cond) LessThan(field string, value interface{}) string {
- return fmt.Sprintf("%s < %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) L(field string, value interface{}) string {
- return c.LessThan(field, value)
- }
- func (c *Cond) LessEqualThan(field string, value interface{}) string {
- return fmt.Sprintf("%s <= %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) LE(field string, value interface{}) string {
- return c.LessEqualThan(field, value)
- }
- func (c *Cond) In(field string, value ...interface{}) string {
- vs := make([]string, 0, len(value))
- for _, v := range value {
- vs = append(vs, c.Args.Add(v))
- }
- return fmt.Sprintf("%s IN (%s)", Escape(field), strings.Join(vs, ", "))
- }
- func (c *Cond) NotIn(field string, value ...interface{}) string {
- vs := make([]string, 0, len(value))
- for _, v := range value {
- vs = append(vs, c.Args.Add(v))
- }
- return fmt.Sprintf("%s NOT IN (%s)", Escape(field), strings.Join(vs, ", "))
- }
- func (c *Cond) Like(field string, value interface{}) string {
- return fmt.Sprintf("%s LIKE %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) NotLike(field string, value interface{}) string {
- return fmt.Sprintf("%s NOT LIKE %s", Escape(field), c.Args.Add(value))
- }
- func (c *Cond) IsNull(field string) string {
- return fmt.Sprintf("%s IS NULL", Escape(field))
- }
- func (c *Cond) IsNotNull(field string) string {
- return fmt.Sprintf("%s IS NOT NULL", Escape(field))
- }
- func (c *Cond) Between(field string, lower, upper interface{}) string {
- return fmt.Sprintf("%s BETWEEN %s AND %s", Escape(field), c.Args.Add(lower), c.Args.Add(upper))
- }
- func (c *Cond) NotBetween(field string, lower, upper interface{}) string {
- return fmt.Sprintf("%s NOT BETWEEN %s AND %s", Escape(field), c.Args.Add(lower), c.Args.Add(upper))
- }
- func (c *Cond) Or(orExpr ...string) string {
- return fmt.Sprintf("(%s)", strings.Join(orExpr, " OR "))
- }
- func (c *Cond) And(andExpr ...string) string {
- return fmt.Sprintf("(%s)", strings.Join(andExpr, " AND "))
- }
- func (c *Cond) Var(value interface{}) string {
- return c.Args.Add(value)
- }
|