diff --git a/chain.go b/chain.go index 4ede69b..1b7c415 100644 --- a/chain.go +++ b/chain.go @@ -728,11 +728,13 @@ func (this *Query) UpdateAllStmt() error { select_sql := `SELECT ` + strings.Join(title_field, " , ") + ` FROM DUAL` - - if len(valSql) > 1 { - for i := 0; i < len(valSql)-1; i++ { - select_sql += ` UNION ALL ` + select_sql + select_res := "" + for i := 0; i < len(valSql); i++ { + if i > 0 { + select_res += ` UNION ALL ` } + + select_res += select_sql } //和mysql更新或添加机制不一样,需指定on条件 on_field := `t.id = s.id` @@ -747,7 +749,7 @@ func (this *Query) UpdateAllStmt() error { } sql = `MERGE INTO ` + dbName + ` AS t - USING (` + select_sql + ` + USING (` + select_res + ` ) s ON (` + on_field + `) WHEN MATCHED THEN diff --git a/transaction_chain.go b/transaction_chain.go index 26f995d..f4b0ff4 100644 --- a/transaction_chain.go +++ b/transaction_chain.go @@ -685,10 +685,13 @@ func (this *TxQuery) UpdateAllStmt() error { ` + strings.Join(title_field, " , ") + ` FROM DUAL` - if len(valSql) > 1 { - for i := 0; i < len(valSql)-1; i++ { - select_sql += ` UNION ALL ` + select_sql + select_res := "" + for i := 0; i < len(valSql); i++ { + if i > 0 { + select_res += ` UNION ALL ` } + + select_res += select_sql } //和mysql更新或添加机制不一样,需指定on条件 on_field := `t.id = s.id` @@ -703,7 +706,7 @@ func (this *TxQuery) UpdateAllStmt() error { } sql = `MERGE INTO ` + dbName + ` AS t - USING (` + select_sql + ` + USING (` + select_res + ` ) s ON (` + on_field + `) WHEN MATCHED THEN