String sql = "select * from tableA where aaa like 'a' and bbb ='b' and ccc like 'c'";
String newSql = getNewSql(sql);
newSql变为"select * from tableA where aaa like 'a%' and bbb ='b' and ccc like 'c%'"
即有like字段加个%,谁能帮我实现啊,谢谢!在线等!
String newSql = getNewSql(sql);
newSql变为"select * from tableA where aaa like 'a%' and bbb ='b' and ccc like 'c%'"
即有like字段加个%,谁能帮我实现啊,谢谢!在线等!
解决方案 »
- Java中 有没有类似于 Js中的 Interval 的方法,或者setTimeout
- java编译后的exe文件,还是字节码吗?还需要虚拟机来执行吗?
- java万年历
- 高手解决一个问题
- 求救,谁有中国电信SMGP短信平台的开发包和API文档?
- 怎么把图片从eclipse里存储到数据库里去
- 实现一个自己的Java编译器
- 调用prepareStatement执行SQL语句的问题!!!!!!!!!!
- JBuilder 如何产生Java Application .exe文件??
- 我对java很无知,因为做网页才问问这个问题,谢谢
- java遍历文件展示文本格式的文件树
- jComboBox的值如何改变?
String sql = "select * from tableA where aaa like 'a' and bbb ='b' and ccc like 'c'";
System.out.println(getNewSql(sql));
}
public static String getNewSql(String sql) {
String[] sArray = sql.split(" ");
for(int i = 0; i < sArray.length; i++) {
if(sArray[i].equals("like")) {
sArray[i + 1] = sArray[i + 1].substring(0, sArray[i + 1].lastIndexOf("\'")) + "%'";
}
}
StringBuilder sb = new StringBuilder();
for(String s : sArray) {
sb.append(s + " ");
}
return sb.toString();
}
}
String newsql = sql.replaceAll("like '(.*)'", "$1%'");%加字段最后喵~``?
select * from tableA where aaa like 'a%' and bbb ='b' and ccc like 'c%'
System.out.println(sql.replaceAll("(?<= like )(.+?)", "$1%"));
// 输出 select * from tableA where aaa like '%a' and bbb ='b' and ccc like '%c'
System.out.println(sql.replaceAll("(?<= like ')(.+?)(?=')", "$1%"));
// 输出select * from tableA where aaa like 'a%' and bbb ='b' and ccc like 'c%'
String regExp="(like '\\w*)(')";
String inputText="select * from tableA where aaa like 'a' and bbb ='b' and ccc like 'c'";
inputText=inputText.replaceAll(regExp,"$1%$2"));
//(? <= like ')(.+?)(?='): (? <= like ')要求左边是 like ',(?=')要求右边是',(.+?)是这中间的字符
// $1%: $1就是(.+?)代替的字符,再加上%
sql.replaceAll("(? <= like ')(.+?)(?=')", "$1%")); //就是将所有左边是 like ',右边是'之间的字符替换为原来中间的字符加上%