首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >SQL字符串匹配不精确

SQL字符串匹配不精确
EN

Stack Overflow用户
提问于 2019-02-20 07:05:56
回答 1查看 309关注 0票数 1

我尝试在一列中搜索精确字符串的所有实例。

下面这两行返回相同的记录集。

select * from policy_templates where policy_content like '%[[Business Name]]%'
select * from policy_templates where policy_content like '%[[Business.Name]]%'

(区别在于业务和名称之间的句号)。

没有一条记录实际包含[[Business Name]] -尽管查询返回了相同的结果集。所有实例均为[[Business.Name]]

我已经运行了一个脚本来用[[Business.Name]]替换[[Business Name]]的所有实例。此SQL按预期运行,并正确替换了所有实例。但是,考虑到上面的问题,如果它检测到[Business.Name]]并用[[Business.Name]替换它,我不会感到惊讶,这显然是不必要的。

在转移到更大的数据集(在生产环境中)之前,我已经在大约50行的较小数据集上进行了测试。目标列包含相当多的文本,所以我想让这个匹配精确到[[Business.Name]],因为它目前在[[Business Name]]看来是模棱两可的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 07:17:08

'%[[]]%'用于正则表达式,.表示任意字符。因此,在正则表达式中,'%[[Business Name]]%'相当于[Business Name]。关于该问题的Here is小型演示

因此,您需要对[]进行转义,因为它们是LIKE的特殊字符

WHERE POLICY_CONTENT LIKE '%\[\[Business Name\]\]% ESCAPE '\'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54776273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档