druid 获取解析最外层的表和字段的Map关系的问题

lx0bsm1f  于 2022-10-21  发布在  Druid
关注(0)|答案(4)|浏览(141)
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;

a5g8bdjr

a5g8bdjr1#

这个问题有人解决吗

rm5edbpk

rm5edbpk2#

这个问题有人解决吗

我当时的解决就是自己去扩展,自己对解析的数据做了大量处理

ehxuflar

ehxuflar3#

这个问题有人解决吗

我当时的解决就是自己去扩展,自己对解析的数据做了大量处理

请问您是对哪些sql做了适配呢

a7qyws3x

a7qyws3x4#

这个问题有人解决吗

我当时的解决就是自己去扩展,自己对解析的数据做了大量处理

请问您是对哪些sql做了适配呢

自己扩展了它的解析器,具体忘记了,因为两年前做的

相关问题