diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java index bda8de83ac..588ea7e6e9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlExprParser.java @@ -475,4 +475,25 @@ public class MySqlExprParser extends SQLExprParser { return column; } + + public SQLExpr orRest(SQLExpr expr) throws ParserException { + + for (;;) { + if (lexer.token() == Token.OR || lexer.token() == Token.BARBAR) { + lexer.nextToken(); + SQLExpr rightExp = and(); + + expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.BooleanOr, rightExp); + } else if (lexer.token() == Token.XOR) { + lexer.nextToken(); + SQLExpr rightExp = and(); + + expr = new SQLBinaryOpExpr(expr, SQLBinaryOperator.BooleanXor, rightExp); + } else { + break; + } + } + + return expr; + } }