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

如何使用正则表达式在SQL中精准匹配包含独立单词Old的字符串

匹配独立单词的SQL正则实现方案

要匹配独立出现的Old单词(不区分大小写、支持任意位置、排除作为其他单词子串的场景),核心是利用正则的单词边界匹配规则,不同数据库的具体实现语法如下:


MySQL / MariaDB

使用REGEXP关键字,单词边界用[[:<:]](单词起始)和[[:>:]](单词结束),默认不区分大小写:

SELECT folder 
FROM 表名 
WHERE folder REGEXP '[[:<:]]Old[[:>:]]';

该写法可覆盖字符串开头/结尾、前后是空格、横杠、下划线等分隔符的场景,不会匹配Harold、Oldfield这类包含Old子串的内容。


PostgreSQL

使用~*运算符(~为区分大小写匹配,~*为不区分大小写匹配),单词边界用\b即可:

SELECT folder
FROM 表名
WHERE folder ~* '\bOld\b';

SQL Server

低版本无需额外依赖的写法:

通过判断Old前后是否为非字母字符,覆盖所有场景:

SELECT folder
FROM 表名
WHERE folder LIKE '%[^a-zA-Z]Old[^a-zA-Z]%' 
   OR folder LIKE 'Old[^a-zA-Z]%' 
   OR folder LIKE '%[^a-zA-Z]Old'
   OR folder = 'Old';

2016及以上版本开启CLR正则支持的写法:

SELECT folder
FROM 表名
WHERE dbo.RegexMatch(folder, '\bOld\b', 'IgnoreCase') = 1;

  • 以上所有写法都会直接返回完整的folder字段匹配值,无需额外处理
  • 如果需要严格区分大小写,可修改对应配置:如PostgreSQL将~*改为~,MySQL在REGEXP后添加BINARY关键字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:45:08