首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CONTAINS找不到LIKE所做的项目

CONTAINS找不到LIKE所做的项目
EN

Stack Overflow用户
提问于 2015-08-17 11:17:31
回答 1查看 77关注 0票数 0

我有一个名为Emre Can的player表Player。但是,我无法使用contains获得它,如下所示:

代码语言:javascript
运行
复制
SELECT  [Id], [Name]      
FROM [Player]
where contains(name,'"*Can*"')  -- show 10 results without emre can

何塞·卡尼亚,洛里克·卡纳但是埃姆雷不能

但是,如果我使用

代码语言:javascript
运行
复制
SELECT  [Id],[Name]      
FROM [Player]
where name like '%Can%'  -- work fine??

where contains(name,'"*Emre*"')  -- also works fine

更新:似乎Can被列在停止列表中。

代码语言:javascript
运行
复制
ALTER FULLTEXT INDEX ON Player SET STOPLIST = OFF -- works now
EN

Stack Overflow用户

发布于 2015-08-17 19:05:24

Contains可以用来搜索前缀,而不是后缀,它不会像" like“字符串运算符那样工作。请参考documentation

编辑

在搜索发现此不推荐的黑客后,您可以使用它来允许sufix搜索

在表中添加一列,该列存储字符串的反转,如下所示

代码语言:javascript
运行
复制
SET NewColumnName = REVERSE(ColumnName)

CREATE PROCEDURE sps_searchSuffix(@searchString varchar(8000)) AS

SET @searchString = REVERSE(@searchString)

DECLARE @Q nVARCHAR(MAX)
SET @Q = 'SELECT * FROM TableName WHERE CONTAINS (ColumnName,''"'+@searchString+'*"'''+')'
EXEC SP_EXECUTESQL @Q

如果你想搜索"garding“,并且你有一个类似于"regarding”的数据,你可以这样叫它。

代码语言:javascript
运行
复制
DECLARE @ST VARCHAR(500)
SET @ST = 'garding'
PRINT @ST
EXEC sps_searchSuffix @ST

找到here

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32042293

复制
相关文章

相似问题

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