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

如何使用通用SQL语句搜索含[字符的表数据?需兼容主流数据库

通用SQL查询包含[或]的字符串解决方案

因为[和]在SQL的LIKE语句中属于通配符(用于定义字符匹配范围),直接写会被数据库解析为通配符逻辑,而非字面量字符,所以需要通过转义来匹配真实的[/]。

要实现跨Oracle、MySQL、SQL Server等主流数据库的通用查询,推荐使用SQL标准的ESCAPE子句自定义转义字符,具体写法如下:

搜索包含[的记录

SELECT * FROM EM_TAGS WHERE TAG LIKE '%\[%' ESCAPE '\';

搜索包含]的记录

SELECT * FROM EM_TAGS WHERE TAG LIKE '%\]%' ESCAPE '\';

同时搜索包含[和]的记录

SELECT * FROM EM_TAGS 
WHERE TAG LIKE '%\[%' ESCAPE '\' 
AND TAG LIKE '%\]%' ESCAPE '\';

为什么之前的写法无效?

  • SELECT * from EM_TAGS WHERE TAG like '%[%':[被当作通配符(匹配任意单个字符),无法匹配字面量[
  • SELECT * from EM_TAGS WHERE TAG like '%[[%':无转义逻辑,数据库仍会将[解析为通配符
  • SELECT * from EM_TAGS WHERE TAG like '%\[%':仅在MySQL等默认支持\作为转义符的数据库生效,Oracle不支持默认转义,因此跨库失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:33:17