mysql LIKE句エスケープ処理
1091 ワード
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;
}