/**
* 将SQL语句中的多个like进行拼接,这里使用效率最高的instr()函数进行处理;注意:and 关键字需要在调用此方法之前进行添加
* 例如:convertToMultiLike("a.c_custname" ,"hund,sun")
* -》
* 返回: "(instr(a.c_custname,upper('hund'))>0 or instr(upper(a.c_custname),upper('sun'))>0 )"
* @param field 包含别名的字段 例如a.c_custname
* @param sourceValue 用中英文逗号隔开的输入值
* @return
*/
public static String convertToMultiLike(String field , String value) {
if(StringUtils.isBlank(field) || StringUtils.isBlank(value))
return " 1 = 1 ";
StringBuilder result = new StringBuilder();
String motherStr = "instr(upper(#FIELD), upper('#VALUE')) > 0";
try {
if(Utils.isChinese(value)){
value = StringUtils.full2HalfChange(value); //全角转半角
}
String [] values = value.split(",");
for(String str : values){
String midleStr = motherStr.replaceAll("#FIELD", field);
midleStr = midleStr.replaceAll("#VALUE", StringUtils.trim(str));
result.append(midleStr).append(" or ");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return " ("+result.replace(result.lastIndexOf("or"), result.length(), "").toString()+") ";
}
多个like高效率查询添加工具
最新推荐文章于 2023-12-21 11:02:47 发布