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

Oracle SQL Developer中LIKE匹配含'+'字符数据无结果问题求助

解决Oracle SQL中LIKE查询'+'字符无结果的问题

问题原因

在Oracle的LIKE语法中,+是通配符,作用是匹配任意单个字符,而非字面意义上的加号。直接执行SELECT * FROM Table WHERE NAME LIKE '%+%'时,Oracle会把+当成通配符处理,自然查不到包含字面加号的数据。

解决方法

方法1:使用ESCAPE子句转义加号

指定一个转义字符(比如反斜杠\),将加号标记为字面量:

SELECT * FROM Table WHERE NAME LIKE '%\+%' ESCAPE '\';

也可以用其他未在字段中出现的字符作为转义符,比如#:

SELECT * FROM Table WHERE NAME LIKE '%#+%' ESCAPE '#';

方法2:使用正则表达式函数REGEXP_LIKE

通过正则表达式匹配字面加号,两种写法都可行:

-- 转义加号
SELECT * FROM Table WHERE REGEXP_LIKE(NAME, '\+');
-- 将加号放在字符组中(无需转义)
SELECT * FROM Table WHERE REGEXP_LIKE(NAME, '[+]');

方法3:用INSTR函数判断位置

检查加号在字符串中的位置是否大于0,以此筛选目标数据:

SELECT * FROM Table WHERE INSTR(NAME, '+') > 0;

内容的提问来源于stack exchange,提问作者Ruser-lab9

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:05:13