将update语句中的逗号替换,如:update t1 set d='aaa,bbbb,aa,a',sid='16,1,3,3',price=230.0,allprice=25300.0 只替换引号外面,用来分割字段和值的‘,’,要求替换后的结果
如下:update t1 set d='aaa,bbbb,aa,a'@sid='16,1,3,3'@price=230.0@allprice=25300.0
如下:update t1 set d='aaa,bbbb,aa,a'@sid='16,1,3,3'@price=230.0@allprice=25300.0
String regex = ",(?=(?:[^']*'[^']*'[^']*)*$)|,(?=[^']*$)";
System.out.println(test.replaceAll(regex, "@"));前提是你这句SQL是语法正确的,而且,不考虑SQL中有注释等特殊情况,比如
update t1 set d='aaa,bbbb,aa,a',sid='16,1,3,3',price=230.0,allprice=25300.0 --- '''这里放逗号,我就死给你看了
不支持
select '\''
这个需要再转义,速度会太慢,如果数据库没问题,建议写成
select ''''