String sql = "select a.name from (select u.name , u.age from user u inner join alert al on alert.id = user.id) a";
// String sql = "select c.a as e,c.b from (select a,count(*) b from alert) c";
// String sql = "select a.name c from alert a";
// SQLExprParser exprParser = SQLParserUtils.createExprParser(sql, "mysql");
List<SQLStatement> sqlStatements = SQLUtils.parseStatements(sql, JdbcConstants.MYSQL);
SchemaStatVisitor statVisitor = SQLUtils.createSchemaStatVisitor(JdbcConstants.MYSQL);
sqlStatements.get(0).accept(statVisitor);
Collection<TableStat.Column> columns = statVisitor.getColumns();
for (TableStat.Column column : columns) {
if (column.isSelect()) {
System.out.println(column.toString());
}
}
结果user.name user.age
团队能提供select属性出现的位置吗,比如我只需要获取最外层的user.name;
4条答案
按热度按时间a5g8bdjr1#
这个问题有人解决吗
rm5edbpk2#
这个问题有人解决吗
我当时的解决就是自己去扩展,自己对解析的数据做了大量处理
ehxuflar3#
这个问题有人解决吗
我当时的解决就是自己去扩展,自己对解析的数据做了大量处理
请问您是对哪些sql做了适配呢
a7qyws3x4#
这个问题有人解决吗
我当时的解决就是自己去扩展,自己对解析的数据做了大量处理
请问您是对哪些sql做了适配呢
自己扩展了它的解析器,具体忘记了,因为两年前做的