【问题标题】:How do I escape multiple characters in an sql like string?如何在类似字符串的 sql 中转义多个字符?
【发布时间】:2013-08-08 05:46:03
【问题描述】:

单个字符可以这样转义:

select * from tableName where columnName like 'CU_C' escape '_';

我需要转义多个字符(“%”和“_”):

select * from tableName where columnName like 'C%U_C' escape ??;

如何转义多个字符?

【问题讨论】:

    标签: sql escaping


    【解决方案1】:

    您误解了escape 的含义:它允许您定义一个字符,以便当您将其放在另一个字符前面时,该字符将按字面意思解释,而不是元字符。您只需要一个这样的转义字符:您可以使用它来转义任何元字符。

    在下面的示例中,我使用 '#' 作为转义字符:

    select * from tableName where columnName like 'C#%U#_C' escape '#'
    

    这会尝试匹配C%U_C 字符串,其中'%''_' 都按字面意思解释,而不是任何字符的序列或任何单个字符。

    【讨论】:

      【解决方案2】:

      转义字符

      单个字符''的示例:

      'high\-voltage'
      

      一个字符串或多个字符'{string}'的例子:

      '{high-voltage}'
      
      • ' - ' 是非 alnum 字符

      参考:https://docs.oracle.com/cd/B10501_01/text.920/a96518/cqspcl.htm

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        • 2011-01-20
        • 2015-07-06
        • 1970-01-01
        • 2010-09-23
        相关资源
        最近更新 更多