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

SQL中如何在含[]值的数据中正确使用LIKE操作符?

问题分析与解决方案

你遇到的问题根源是LIKE查询中包含特殊通配符,这些字符在LIKE语法里有特殊含义,无法直接匹配字段中实际存储的字符。

原查询里的[]是LIKE的专用通配符,用于定义匹配的字符范围,直接写入LIKE条件时,数据库会将其当作通配符解析,而非实际的方括号字符。另外字符串中的\如果涉及转义逻辑,也需要额外处理才能正确匹配。

调整后的LIKE查询(分数据库适配)

针对SQL Server

方法1:使用ESCAPE子句指定转义字符

select * 
from Table1 
where Email like '%test()<>\[\\]:;@\\@test.com%' ESCAPE '\'
  • 用\作为转义字符,将[转义为\[、]转义为\]、\自身转义为\\,确保数据库把这些字符视为字段中实际存储的内容,而非通配符或转义标识。

方法2:用方括号包裹特殊字符

select * 
from Table1 
where Email like '%test()<>[[]]:;@\@test.com%'
  • 在SQL Server的LIKE语法中,[[]代表实际的[字符,[]]代表实际的]字符,以此直接匹配字段里的方括号。

针对MySQL

MySQL默认以\作为转义字符,无需额外指定ESCAPE子句,直接转义即可:

select * 
from Table1 
where Email like '%test()<>\[\\]:;@\\@test.com%'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:17:19