有没有人有一个只匹配整个单词的LIKE模式?
它需要考虑到空格、标点符号和字符串的开始/结束作为单词边界。
我没有使用SQL全文搜索,因为它不可用。我不认为简单的关键字搜索是必要的,而LIKE应该能够做到这一点。但是,如果有人针对LIKE模式测试过全文搜索的性能,我会很感兴趣的。
编辑:
我到了这个阶段,但它不匹配作为单词边界的字符串的开始/结束。
where DealTitle like '%[^a-zA-Z]pit[^a-zA-Z]%' 我希望这是匹配“坑”,而不是“吐”在一个句子或作为一个单一的单词。
例如,DealTitle可能包含“一个绝望的坑”或“挖出你的智慧”或“一个坑”或“一个坑”。或者“坑!”或者只是“坑”。
发布于 2011-03-27 02:56:35
全文索引就是答案。
可怜的堂兄弟的替代方案是
'.' + column + '.' LIKE '%[^a-z]pit[^a-z]%'仅供参考除非使用_CS归类,否则不需要a-zA-Z
发布于 2016-03-22 20:59:35
我认为推荐的模式不包括在开头或结尾没有任何字符的单词。我将使用以下附加标准。
where DealTitle like '%[^a-z]pit[^a-z]%' OR
DealTitle like 'pit[^a-z]%' OR
DealTitle like '%[^a-z]pit'我希望这对你们有帮助!
发布于 2020-01-28 04:17:08
您可以只对空格分隔符使用以下条件:
(' '+YOUR_FIELD_NAME+' ') like '% doc %'它比其他解决方案更快、更好地工作。因此,在你的例子中,“绝望的坑”、“绞尽脑汁”、“坑”或“坑”都能很好地工作。或者只使用"pit",但不适用于"pit!“。
https://stackoverflow.com/questions/5444300
复制相似问题