日期:2014-05-16  浏览次数:20874 次

mysql LIKE 子句转义符处理
    MySQL 在字符串中使用的是C的转义句法(例如“\n”), 所以在   LIKE   字符串中使用的任何一个   “\”   必须被双写。 例如,为了查找   “\n”,必须以   “\\n”   形式指定它。为了查找   “\”,必须指定它为   “\\\\”   (反斜线被语法分析器剥离一次,另一次在模式匹配时完成,留下一条单独的反斜线被匹配)。
    private String   filtrateLikeSql(String value){
       if(null!=value){
         String newValue="";
         newValue=value.replaceAll("\\\\","\\\\\\\\");
         newValue=newValue.replaceAll("'","\\\\'");
         newValue=newValue.replaceAll("_","\\\\_");
          newValue=newValue.replaceAll("\"","\\\\\"");
          newValue=newValue.replaceAll("%","\\\\%");
         return newValue;
       }
       return value;
    }
    private String   filtrateNotLikeSql(String value){
       if(null!=value){
         String newValue="";
         newValue=value.replaceAll("\\\\","\\\\\\\\");
          newValue=newValue.replaceAll("\"","\\\\\"");
         return newValue;
       }
       return value;
    }