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

如何在Toad for Oracle中查询包含完整单词UNLOCK的记录?

Oracle筛选包含完整单词的记录解决方案

问题背景

我正在使用Toad for Oracle,有一张名为CO_EXCEPT_TEXT_LG的表,表中数据如下:

DeviationAction
1UNLOCK PHASE
2UNLOCKED PHASE
3UNLOCK
4To UNLOCK PHASE

需要筛选出所有包含完整单词UNLOCK的记录(即记录1、3、4),已尝试以下查询但未得到预期结果:

  • WHERE ACTION = 'UNLOCK':仅返回记录3
  • WHERE ACTION LIKE 'UNLOCK':仅返回记录3(我认为不带通配符的LIKE功能等同于=,若有误请指正)
  • WHERE ACTION LIKE '%UNLOCK%':返回记录1、2、3、4(会匹配UNLOCKED这类包含该字符串的词)
  • WHERE ACTION LIKE 'UNLOCK%':返回记录1、2、3(同样会匹配UNLOCKED)

正确查询语句

使用Oracle的REGEXP_LIKE函数结合单词边界匹配,就能精准筛选出包含完整单词UNLOCK的记录:

SELECT * FROM CO_EXCEPT_TEXT_LG
WHERE REGEXP_LIKE(ACTION, '\bUNLOCK\b');

补充说明

  1. 单词边界\b的作用:确保UNLOCK的前后是单词分隔符(比如空格、字符串开头/结尾),不会匹配UNLOCKED这种将UNLOCK作为前缀的词。
  2. 关于LIKE的理解:你的判断是对的,不带通配符的LIKE和=功能完全一致,都是做完整字符串匹配。
  3. 若需要忽略大小写匹配,可以添加第三个参数'i':
SELECT * FROM CO_EXCEPT_TEXT_LG
WHERE REGEXP_LIKE(ACTION, '\bUNLOCK\b', 'i');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:52:41