mysql LIKE句エスケープ処理


MySQLは文字列でCのエスケープ構文(例えば「」)を使用しているので、LIKE文字列で使用されるいずれかの「」は二重に書かなければならない.たとえば、「」を検索するには、「」形式で指定する必要があります.「」を検索するには、「\\\」と指定する必要があります(構文解析で反斜線が1回剥離され、モードマッチング時に完了し、個別の反斜線が一致します). 
  
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; 
    }