eg:某个记录类型是多选值02;03
但是表记录可能存 02、03、02:03记录,只要记录类型满足02或者03都要全部查询出来
String typeStrInfo="";
String[] typeArr=typeStr.split(";");
for(int i=0;i<typeArr.length;i++){
String subType=typeArr[i];
if(StringUtils.hasLength(subType)){
if(i==0){
typeStrInfo+=" (FIND_IN_SET('"+subType+"',F_TYPE)";
}else if(i!=typeArr.length-1){//不是最后一个
typeStrInfo+=" OR FIND_IN_SET('"+subType+"',F_TYPE)";
}else if(i==typeArr.length-1){
typeStrInfo+=" OR FIND_IN_SET('"+subType+"',F_TYPE))";
}
}
}
List<实体名> matList=itService.getTree(typeStrInfo);
mapper.java
List<实体名> getTree(@Param("typeStrInfo") String typeStrInfo);
这里mapper.java必须用@Param(参考:防止参数混乱用@Param,当参数为2-5个时候,用@param最佳)
mapper.xml
<if test="typeStrInfo!=null and typeStrInfo!=''">
AND ${typeStrInfo}
</if>
这里mapper.xml参数必须${},用#{}不行;${}是将参数直接放在 sql上了,#{}运用sql加占位符?方式
参考网址:https://blog.csdn.net/qinyf2015/article/details/80864928