如何使用CONTAINS进行SQL部分搜索

时间:2018-03-28 23:29:24

标签: sql sql-server tsql

我是SQL的新手,我试图使用使用变量的CONTAINS进行部分搜索。它在寻找一个完整的"期限但不是部分的。让我们说这是条目#34; Tristan"当我只使用" Trist"时,没有任何东西弹出。我尝试这样做:go doc time.Second,但它不起作用。在我的存储过程的代码下面。

@Word+'*'

1 个答案:

答案 0 :(得分:1)

其他人的重要提示:

CONTAINS是Transact-SQL SELECT语句的WHERE子句中使用的谓词,用于对包含基于字符的数据类型的全文索引列执行SQL Server全文搜索

直接回答我发现的问题:

Use of contains() in sql server

结合ZLK的评论:

@variable = @variable + '*';

SELECT *
FROM user
WHERE CONTAINS(column, @variable);

此*语法类似于LIKE('value%')

它只能从一个带有外卡的单词的开头起作用。你不能用通配符加前缀,这是FULL-TEXT Indexing的性质......不能将通配符编入索引。

我在搜索过程中发现了一些有趣的前缀解决方法,但我没有推荐。通过执行LIKE('%value%')搜索,您可以获得比我遇到的任何变通方法更好的性能。