我有以下存储过程,
CREATE Procedure sp_SearchDB (
@SearchWord nvarchar(200)
)
SET @SearchWord = '"*' + @SearchWord + '*"'
Select *
from Table1
Where Contains(Description, @SearchWord)
当我搜索“SQL Server”时,它会返回带有“SQL”或“Server”的结果,但它不会返回带有“SQLServer”的数据(如果没有空格),同样如果给出searchword = SQLServer,它不会返回“SQL Server”(带空格)。如何获得结果“SQL Server”和“SQLServer”?
答案 0 :(得分:0)
您需要执行以下过程:
EXEC sp_SearchDB N'SQL SERVER'
答案 1 :(得分:0)
坏消息,你可以做到,但它会给你一些误报。尝试:
EXEC sp_SearchDB N'SQL'
如果你关心误报,答案是:没有办法做到这一点。如果你想要“SQL Server”和“SQLServer”,你应该这样做:
Select * from Table1 Where Contains(Description, '"SQL Server" OR "SQLServer"').
您可以编写一个代码,始终尝试将两个单词一起查找并分开。如果您的客户搜索:
baby sitter
您的代码会在找到空格时创建此变体:
'"baby sitter" or "babysitter"'
我希望你明白。