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

SQL Server中Like匹配含方括号与连字符的内容失效问题

解决LIKE匹配含方括号字符串的问题

嘿,我来帮你搞定这个LIKE匹配的坑!你遇到的问题核心在于方括号[]是LIKE语法里的特殊通配符——它的作用是匹配括号内的任意单个字符,所以你直接写[C0-S12]ECT-PM18052时,数据库会把[C0-S12]解析成“匹配C、0到S之间的任意字符、1、2里的单个字符”,这就导致它会匹配一大堆不符合预期的结果,比如[C0-S8]ECT-PM18052这类。而你用//转义没效果,是因为几乎没有数据库把双斜杠当作LIKE的转义符,数据库会把它当成普通字符去匹配,自然找不到对应记录。

下面分常见数据库给你精准匹配的方案:

  • SQL Server:用双重方括号[[]]来转义单个方括号,把你的查询改成这样:

    SELECT * FROM your_table WHERE your_column LIKE '[[]C0-S12[]]ECT-PM18052'
    

    这里[[]]会被解析成字面的[],剩下的部分保持原样,就能精准命中目标字符串。

  • MySQL/MariaDB:默认用反斜杠\作为转义符,转义后的查询语句:

    SELECT * FROM your_table WHERE your_column LIKE '\[C0-S12\]ECT-PM18052'
    

    要是你的SQL模式禁用了反斜杠转义,还可以用ESCAPE指定自定义转义符(比如#):

    SELECT * FROM your_table WHERE your_column LIKE '#[C0-S12#]ECT-PM18052' ESCAPE '#'
    
  • PostgreSQL:需要搭配ESCAPE关键字指定转义符,比如用反斜杠:

    SELECT * FROM your_table WHERE your_column LIKE '\[C0-S12\]ECT-PM18052' ESCAPE '\'
    

最后提个醒:如果你的目标字符串里还有%、_这类通配符,也要按相同规则转义,避免再次出现匹配错误哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:02:58