Escaping the escape character does not work – SQL LIKE Operator

后端 未结 2 1702
别那么骄傲
别那么骄傲 2020-12-21 04:56

I have used \\ as escape character for LIKE operator. I am escaping following four characters

1 % 2 [

相关标签:
2条回答
  • 2020-12-21 05:30

    C# Code for LIKE handling

         public static string WildcardFormatSpecialCharacter(string source)
        {
            string formattedResult = string.Empty;
            if (!String.IsNullOrEmpty(source))
            {
                //Escape the escape character
                formattedResult = source.Replace(DataLayerConstants.EscapeCharacter, DataLayerConstants.EscapeCharacterWithEscape);
                //The %
                formattedResult = formattedResult.Replace(DataLayerConstants.Percentage, DataLayerConstants.PercentageWithEscape);
                //The [
                formattedResult = formattedResult.Replace(DataLayerConstants.OpenSqaureBracket, DataLayerConstants.OpenSqaureBracketWithEscape);
                //The ]
                formattedResult = formattedResult.Replace(DataLayerConstants.CloseSqaureBracket, DataLayerConstants.CloseSqaureBracketWithEscape);
                //The _
                formattedResult = formattedResult.Replace(DataLayerConstants.Underscore, DataLayerConstants.UnderscoreWithEscape);
            }
            return formattedResult;
        }
    
    
        public const string EscapeCharacter = @"\";
        public const string EscapeCharacterWithEscape = @"\\";
        public const string Percentage = "%";
        public const string PercentageWithEscape = @"\%";
        public const string OpenSqaureBracket = "[";
        public const string OpenSqaureBracketWithEscape = @"\[";
        public const string CloseSqaureBracket = "]";
        public const string CloseSqaureBracketWithEscape = @"\]";
        public const string Underscore = "_";
        public const string UnderscoreWithEscape = @"\_";
    

    Other things to check Use of REPLACE in SQL Query for newline/ carriage return characters

    0 讨论(0)
  • 2020-12-21 05:34

    Modify your CustomFormat method like this:

    private static string CustomFormat(string input)
    {
        input = input.Replace(@"\", @"\\"); 
        input = input.Replace(@"%", @"\%");
        input = input.Replace(@"[", @"\[");
        input = input.Replace(@"]", @"\]");
        input = input.Replace(@"_", @"\_");
        return input;
    }
    
    0 讨论(0)
提交回复
热议问题