diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java index 6a76e7f088..c7dc39bfd3 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/parser/MySqlStatementParser.java @@ -1482,7 +1482,7 @@ public class MySqlStatementParser extends SQLStatementParser { SQLName table = exprParser.name(); stmt.setTable(table); - if (lexer.token() == Token.FROM) { + if (lexer.token() == Token.FROM || lexer.token() == Token.IN) { lexer.nextToken(); SQLName database = exprParser.name(); stmt.setDatabase(database); diff --git a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java index 1e3bf9933d..da5fa51303 100644 --- a/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java +++ b/src/test/java/com/alibaba/druid/bvt/sql/mysql/SHOW_COLUMNS_Syntax_Test.java @@ -59,6 +59,17 @@ public class SHOW_COLUMNS_Syntax_Test extends TestCase { Assert.assertEquals("SHOW COLUMNS FROM mydb.mytable;", text); } + + public void test_3() throws Exception { + String sql = "SHOW COLUMNS FROM mytable IN mydb;"; + + SQLStatementParser parser = new MySqlStatementParser(sql); + List stmtList = parser.parseStatementList(); + + String text = output(stmtList); + + Assert.assertEquals("SHOW COLUMNS FROM mydb.mytable;", text); + } private String output(List stmtList) { StringBuilder out = new StringBuilder();