You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redshift中如何使用LIKE操作符匹配反斜杠字符

Redshift LIKE匹配反斜杠的正确解决方法

核心问题是Redshift存在两层转义规则叠加:

  1. SQL字符串字面量本身就用\作为转义字符,写在单引号里的\会先被解析器转义一次
  2. LIKE操作符默认也把\作为模式转义字符,解析后的字符串进入LIKE匹配时还会被再转义一次

方案1:用默认转义规则匹配

要匹配单个\需要写4个反斜杠:

-- 匹配字符串中包含反斜杠的场景,返回true
select 'a\a' like '%\\\\%';

-- 精确匹配内容仅为单个反斜杠的场景
select '\' like '\\\\';

转义逻辑:

  • 字符串字面量层:\\\\先被转义为\\
  • LIKE匹配层:\\再被转义为普通单个\参与匹配

方案2:自定义ESCAPE字符(更推荐,不易出错)

自定义转义字符可以避免多层转义混淆,逻辑更清晰:

-- 返回true
select 'a\a' like '%^\%' escape '^';

这里我们把^设为转义字符,模式里的\不需要额外处理,直接按预期匹配即可。


之前写法报错/结果不符合预期的原因

  • like '\':字符串里单个\转义了后面的单引号,导致引号不闭合,触发语法错误
  • like '\\':字符串层转义后变成\,进入LIKE层后被识别为转义前缀,没有实际匹配的字符,所以匹配a\a返回false
  • 剩余的写法都存在单引号被\转义、字符串未闭合的问题,所以全报语法错误

内容的提问来源于stack exchange,提问作者s_earlgrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 04:45:04