Merge e2aa0ef2c2
into feb1f45e72
This commit is contained in:
commit
3e0f6a27d6
|
@ -357,6 +357,13 @@ func (engine *Engine) In(column string, args ...interface{}) *Session {
|
||||||
return session.In(column, args...)
|
return session.In(column, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Method Inc provides a update string like "column = column + ?"
|
||||||
|
func (engine *Engine) Inc(column string, arg interface{}) *Session {
|
||||||
|
session := engine.NewSession()
|
||||||
|
session.IsAutoClose = true
|
||||||
|
return session.Inc(column, arg)
|
||||||
|
}
|
||||||
|
|
||||||
// Temporarily change the Get, Find, Update's table
|
// Temporarily change the Get, Find, Update's table
|
||||||
func (engine *Engine) Table(tableNameOrBean interface{}) *Session {
|
func (engine *Engine) Table(tableNameOrBean interface{}) *Session {
|
||||||
session := engine.NewSession()
|
session := engine.NewSession()
|
||||||
|
|
12
session.go
12
session.go
|
@ -128,6 +128,12 @@ func (session *Session) In(column string, args ...interface{}) *Session {
|
||||||
return session
|
return session
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Method In provides a query string like "count = count + 1"
|
||||||
|
func (session *Session) Inc(column string, arg interface{}) *Session {
|
||||||
|
session.Statement.Inc(column, arg)
|
||||||
|
return session
|
||||||
|
}
|
||||||
|
|
||||||
// Method Cols provides some columns to special
|
// Method Cols provides some columns to special
|
||||||
func (session *Session) Cols(columns ...string) *Session {
|
func (session *Session) Cols(columns ...string) *Session {
|
||||||
session.Statement.Cols(columns...)
|
session.Statement.Cols(columns...)
|
||||||
|
@ -2952,6 +2958,12 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6
|
||||||
args = append(args, time.Now())
|
args = append(args, time.Now())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//for update action to like "column = column + ?"
|
||||||
|
incColumns := session.Statement.getInc()
|
||||||
|
for k, v := range incColumns {
|
||||||
|
colNames = append(colNames, k+" = "+k+" + ?")
|
||||||
|
args = append(args, v)
|
||||||
|
}
|
||||||
var condiColNames []string
|
var condiColNames []string
|
||||||
var condiArgs []interface{}
|
var condiArgs []interface{}
|
||||||
|
|
||||||
|
|
14
statement.go
14
statement.go
|
@ -48,6 +48,7 @@ type Statement struct {
|
||||||
checkVersion bool
|
checkVersion bool
|
||||||
mustColumnMap map[string]bool
|
mustColumnMap map[string]bool
|
||||||
inColumns map[string]*inParam
|
inColumns map[string]*inParam
|
||||||
|
incColumns map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// init
|
// init
|
||||||
|
@ -78,6 +79,7 @@ func (statement *Statement) Init() {
|
||||||
statement.mustColumnMap = make(map[string]bool)
|
statement.mustColumnMap = make(map[string]bool)
|
||||||
statement.checkVersion = true
|
statement.checkVersion = true
|
||||||
statement.inColumns = make(map[string]*inParam)
|
statement.inColumns = make(map[string]*inParam)
|
||||||
|
statement.incColumns = make(map[string]interface{}, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// add the raw sql statement
|
// add the raw sql statement
|
||||||
|
@ -470,6 +472,18 @@ func (statement *Statement) Id(id interface{}) *Statement {
|
||||||
return statement
|
return statement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generate "Update ... Set column = column + arg" statment
|
||||||
|
func (statement *Statement) Inc(column string, arg interface{}) *Statement {
|
||||||
|
k := strings.ToLower(column)
|
||||||
|
statement.incColumns[k] = arg
|
||||||
|
return statement
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate "Update ... Set column = column + arg" statment
|
||||||
|
func (statement *Statement) getInc() map[string]interface{} {
|
||||||
|
return statement.incColumns
|
||||||
|
}
|
||||||
|
|
||||||
// Generate "Where column IN (?) " statment
|
// Generate "Where column IN (?) " statment
|
||||||
func (statement *Statement) In(column string, args ...interface{}) *Statement {
|
func (statement *Statement) In(column string, args ...interface{}) *Statement {
|
||||||
k := strings.ToLower(column)
|
k := strings.ToLower(column)
|
||||||
|
|
Loading…
Reference in New Issue