diff --git a/expression_ext.go b/expression_ext.go index b4111e47..ec8170d2 100644 --- a/expression_ext.go +++ b/expression_ext.go @@ -108,12 +108,13 @@ func (e *expr) operator(operator string, value interface{}) *expr { return e } - if _, ok := value.(*expr); ok { - e.expr = "(" + e.expr + " " + operator + " (?))" + if vExpr, ok := value.(*expr); ok { + e.expr = "(" + e.expr + " " + operator + " (" + vExpr.expr + "))" + e.args = append(e.args, vExpr.args...) } else { e.expr = "(" + e.expr + " " + operator + " ?)" + e.args = append(e.args, value) } - e.args = append(e.args, value) return e }