diff --git a/internal/statements/cond.go b/internal/statements/cond.go index 4cf7aafd..dfc6c208 100644 --- a/internal/statements/cond.go +++ b/internal/statements/cond.go @@ -19,7 +19,7 @@ func (q *QuoteReplacer) Write(p []byte) (n int, err error) { return q.BytesWriter.Builder.WriteString(c) } -func (statement *Statement) quoteReplacer(w *builder.BytesWriter) *QuoteReplacer { +func (statement *Statement) QuoteReplacer(w *builder.BytesWriter) *QuoteReplacer { return &QuoteReplacer{ BytesWriter: w, quoter: statement.dialect.Quoter(), @@ -35,7 +35,7 @@ func (statement *Statement) Where(query interface{}, args ...interface{}) *State func (statement *Statement) And(query interface{}, args ...interface{}) *Statement { switch qr := query.(type) { case string: - cond := builder.Expr(statement.ReplaceQuote(qr), args...) + cond := builder.Expr(qr, args...) statement.cond = statement.cond.And(cond) case map[string]interface{}: cond := make(builder.Eq) diff --git a/internal/statements/query.go b/internal/statements/query.go index fa643154..f72c8602 100644 --- a/internal/statements/query.go +++ b/internal/statements/query.go @@ -231,7 +231,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB } condWriter := builder.NewWriter() - if err := statement.cond.WriteTo(statement.quoteReplacer(condWriter)); err != nil { + if err := statement.cond.WriteTo(statement.QuoteReplacer(condWriter)); err != nil { return "", nil, err } @@ -282,7 +282,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB if _, err := fmt.Fprint(mssqlCondi, whereStr); err != nil { return "", nil, err } - if err := utils.WriteBuilder(mssqlCondi, statement.quoteReplacer(condWriter)); err != nil { + if err := utils.WriteBuilder(mssqlCondi, statement.QuoteReplacer(condWriter)); err != nil { return "", nil, err } } @@ -311,7 +311,7 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB if _, err := fmt.Fprint(buf, whereStr); err != nil { return "", nil, err } - if err := utils.WriteBuilder(buf, statement.quoteReplacer(condWriter)); err != nil { + if err := utils.WriteBuilder(buf, statement.QuoteReplacer(condWriter)); err != nil { return "", nil, err } } @@ -409,7 +409,7 @@ func (statement *Statement) GenExistSQL(bean ...interface{}) (string, []interfac if _, err := fmt.Fprintf(buf, " WHERE "); err != nil { return "", nil, err } - if err := statement.Conds().WriteTo(buf); err != nil { + if err := statement.Conds().WriteTo(statement.QuoteReplacer(buf)); err != nil { return "", nil, err } } @@ -424,7 +424,7 @@ func (statement *Statement) GenExistSQL(bean ...interface{}) (string, []interfac return "", nil, err } if statement.Conds().IsValid() { - if err := statement.Conds().WriteTo(buf); err != nil { + if err := statement.Conds().WriteTo(statement.QuoteReplacer(buf)); err != nil { return "", nil, err } if _, err := fmt.Fprintf(buf, " AND "); err != nil { @@ -445,7 +445,7 @@ func (statement *Statement) GenExistSQL(bean ...interface{}) (string, []interfac if _, err := fmt.Fprintf(buf, " WHERE "); err != nil { return "", nil, err } - if err := statement.Conds().WriteTo(buf); err != nil { + if err := statement.Conds().WriteTo(statement.QuoteReplacer(buf)); err != nil { return "", nil, err } } diff --git a/session_delete.go b/session_delete.go index cd502a60..322d5a44 100644 --- a/session_delete.go +++ b/session_delete.go @@ -122,7 +122,7 @@ func (session *Session) Delete(beans ...interface{}) (int64, error) { } } - if err = session.statement.Conds().WriteTo(condWriter); err != nil { + if err = session.statement.Conds().WriteTo(session.statement.QuoteReplacer(condWriter)); err != nil { return 0, err } diff --git a/session_update.go b/session_update.go index b7d0d7ae..576cd3b1 100644 --- a/session_update.go +++ b/session_update.go @@ -348,7 +348,7 @@ func (session *Session) Update(bean interface{}, condiBean ...interface{}) (int6 if cond.IsValid() { fmt.Fprint(whereWriter, "WHERE ") } - if err := cond.WriteTo(whereWriter); err != nil { + if err := cond.WriteTo(st.QuoteReplacer(whereWriter)); err != nil { return 0, err } if err := st.WriteOrderBy(whereWriter); err != nil {