java后端接口中怎么解析取到传过来的sql语句groupby后面跟的字段,求代码 各位大神谢谢啦
我理解你想知道group by后面跟了哪些字段,假设 sql语句为 :
String sql="select a,b,c,sum(e) from tb group by a,b,c",
那么如果你想获取 group by 后面的 a,b,c三个字段你可以这么做
String[] subSql=sql.split("group by");//将sql字符串分隔成两段,
第一部分subSql[0] 为group by前的部分("select a,b,c,sum(e) from tb")
第二部分subSql[1] 则为group by 之后的部分("a,b,c")
if(subSql.Length>1){
String [] gpfields=gpfieldsStr.split(",");//获取第二部分,并将第二部分 即 "a,b,c"按逗号分隔开
// 最终gpfields即获取到了group by 字段数组["a","b"."c"],挨个遍历就可以取出
}
补充问题 传过来的是String 类型的sql参数
把你接收的数据打印出来,看看字符串参数是啥样子,然后对应处理就可以了
传过来的是String 类型的,如果有拼接,就用特殊字符分割
你要把你想要的说清楚,不然怎么分割。
我理解你想知道group by后面跟了哪些字段,假设 sql语句为 :
String sql="select a,b,c,sum(e) from tb group by a,b,c",
那么如果你想获取 group by 后面的 a,b,c三个字段你可以这么做
String[] subSql=sql.split("group by");//将sql字符串分隔成两段,
第一部分subSql[0] 为group by前的部分("select a,b,c,sum(e) from tb")
第二部分subSql[1] 则为group by 之后的部分("a,b,c")
if(subSql.Length>1){
var gpfieldsStr=subSql[1];
String [] gpfields=gpfieldsStr.split(",");//获取第二部分,并将第二部分 即 "a,b,c"按逗号分隔开
// 最终gpfields即获取到了group by 字段数组["a","b"."c"],挨个遍历就可以取出
}