首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用SQL Server LIKE模式搜索“全字匹配”

用SQL Server LIKE模式搜索“全字匹配”
EN

Stack Overflow用户
提问于 2011-03-27 02:22:31
回答 9查看 37.6K关注 0票数 32

有没有人有一个只匹配整个单词的LIKE模式?

它需要考虑到空格、标点符号和字符串的开始/结束作为单词边界。

我没有使用SQL全文搜索,因为它不可用。我不认为简单的关键字搜索是必要的,而LIKE应该能够做到这一点。但是,如果有人针对LIKE模式测试过全文搜索的性能,我会很感兴趣的。

编辑:

我到了这个阶段,但它不匹配作为单词边界的字符串的开始/结束。

代码语言:javascript
复制
where DealTitle like '%[^a-zA-Z]pit[^a-zA-Z]%' 

我希望这是匹配“坑”,而不是“吐”在一个句子或作为一个单一的单词。

例如,DealTitle可能包含“一个绝望的坑”或“挖出你的智慧”或“一个坑”或“一个坑”。或者“坑!”或者只是“坑”。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-27 02:56:35

全文索引就是答案。

可怜的堂兄弟的替代方案是

代码语言:javascript
复制
'.' + column + '.' LIKE '%[^a-z]pit[^a-z]%'

仅供参考除非使用_CS归类,否则不需要a-zA-Z

票数 47
EN

Stack Overflow用户

发布于 2016-03-22 20:59:35

我认为推荐的模式不包括在开头或结尾没有任何字符的单词。我将使用以下附加标准。

代码语言:javascript
复制
where DealTitle like '%[^a-z]pit[^a-z]%' OR 
  DealTitle like 'pit[^a-z]%' OR 
  DealTitle like '%[^a-z]pit'

我希望这对你们有帮助!

票数 4
EN

Stack Overflow用户

发布于 2020-01-28 04:17:08

您可以只对空格分隔符使用以下条件:

代码语言:javascript
复制
(' '+YOUR_FIELD_NAME+' ') like '% doc %'

它比其他解决方案更快、更好地工作。因此,在你的例子中,“绝望的坑”、“绞尽脑汁”、“坑”或“坑”都能很好地工作。或者只使用"pit",但不适用于"pit!“。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5444300

复制
相关文章

相似问题

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