如何在类似字符串的sql中转义多个字符?

时间:2013-08-07 01:59:46

标签: sql escaping

单个角色可以像这样转义:

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

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

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

如何转义多个字符?

2 个答案:

答案 0 :(得分:16)

你误解了escape的含义:它允许你定义一个角色,当你把它放在另一个角色的前面时,其他角色按字面解释,而不是元字符。你只需要一个这样的转义字符:你可以用它来转义任何元字符。

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

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

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

答案 1 :(得分:0)

转义字符

单个字符 '' 的示例:

'high\-voltage'

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

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

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