我正在尝试搜索包含搜索字符串中所有组合的字符串以及它自己的整个字符串。那是, 1)搜索='abc def',然后搜索所有带有abc,def和'abc def'的字符串 2)Seach ='abc def xyz',然后所有带有abc,def,xyz和'abc def xyz'的字符串
我在下面的查询中写了相同的内容
DECLARE @search_string VARCHAR(1000) = 'abc def'
DECLARE @Query VARCHAR(1000)
SET @Query = 'SELECT [Question],
( (case when Question like ''%'+LEFT(@search_string, charindex(' ', @search_string) - 1)+'%'' then 1 else 0 end) +
(case when Question like ''%'+SUBSTRING(@search_string, CHARINDEX(' ', @search_string) +1, DATALENGTH(@search_string) - CHARINDEX(' ', @search_string) +1 )+'%'' then 1 else 0 end) +
(case when Question like ''%'+@search_string+'%'' then 1 else 0 end)
) as CountString
FROM Tbl_Questions WHERE ([Question] LIKE ''%' + REPLACE(@search_string, ' ', '%'' OR [Question] LIKE ''%') + '%'') order by CountString desc'
EXEC(@Query)
这为我提供了带有单个空格的单词的结果。我无法获得多个空格的单词的结果。另外,我需要按整个单词排序。也就是说,如果4行与所有三个单词(abc def xyz)匹配,则它应该在最上面。如果某些匹配abc def,那么应该是下一个。
如何修改此代码以包含多个空格并按上述进行搜索?