squirrel
squirrel copied to clipboard
"update table set column1=column1+1", this sql would set column1=0
squirrel
where:=map[string]interface{}{"column2":""}
setmap:=map[string]interface{}{"column1":"column1 + 1"}
// UpdateWorkProperties
func UpdateWorkProperties(ctx context.Context, runner sq.BaseRunner, where interface{}, setmap map[string]interface{}) error {
logger.Info("UpdateItemNoStatus sq tosql=====================")
logger.Info(sq.Update(tableWorkProperties).SetMap(setmap).Where(where).Limit(1).ToSql())
logger.Info("UpdateItemNoStatus sq tosql======================")
_, err := sq.Update(tableWorkProperties).
SetMap(setmap).
Where(where).
Limit(1).
RunWith(runner).
ExecContext(ctx)
return err
}
squirrel trans to sql string log
{"level":"info","msg":"UpdatePropertiesCurrentNo sq tosql=====================","time":"2023-03-14 11:20:49"}
{"level":"info","msg":"UPDATE property_origin SET item_no_current = ? WHERE work_id = ? LIMIT 1[item_no_current + 1 1123031318403700117600000108] \u003cnil\u003e","time":"2023-03-14 11:20:49"}
{"level":"info","msg":"UpdatePropertiesCurrentNo sq tosql======================","time":"2023-03-14 11:20:49"}
mysql table effect
item_no_current=0
Try:
setmap := sq.Eq{"column1": sq.Expr("column1 + 1")}