SQL 通配符搜索以从以搜索词开头的单个字符串中查找词?

SQL wildcard search to find words from a single string that begins with the searched word?

假设我的水果 table 在一个单元格中有数据 'Apple Mango Banana Guava'。

declare @label nvarchar(255) = 'ango' 
select fruit from fruits 
where fruit like '%'+@label+'%'

通过上述查询,我​​得到了部分匹配的结果,但我希望它仅在确切单词与字符串 'Apple Mango Banana Guava' 匹配时才起作用。

Eg: It should show me the result if I search for Mango, not for ango.

您可以使用:

declare @label nvarchar(255) = 'ango' 
select fruit from fruits 
where (' ' + fruit + ' ') like '% '+@label+' %'

我强烈建议规范化您的架构并且不要将多个值存储为单个列。

使用Full Text Search. It enables CONTAINS谓词。例如:

SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Mango"')

SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Man*"')

第一个查询returns所有名称中含有Mango字样的水果

第二个查询returns所有名称中以Man开头的水果