假设我有一个水果表,该表在一个单元格中具有数据“ Apple Mango Banana Guava”。
declare @label nvarchar(255) = 'ango'
select fruit from fruits
where fruit like '%'+@label+'%'
通过上面的查询,我得到了部分匹配的结果,但是我希望它仅在字符串'Apple Mango Banana Guava'的确切单词与之匹配时才起作用。
例如:如果我搜索Mango而不是ango,它应该向我显示结果。
答案 0 :(得分:0)
您可以使用:
declare @label nvarchar(255) = 'ango'
select fruit from fruits
where (' ' + fruit + ' ') like '% '+@label+' %'
我强烈建议规范化您的架构,不要将多个值存储为单列。
答案 1 :(得分:0)
使用Full Text Search。它启用CONTAINS谓词。例如:
SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Mango"')
SELECT *
FROM Fruits
WHERE CONTAINS(FruitName, '"Man*"')
第一个查询返回名称包含单词Mango的所有水果。
第二个查询返回所有名称包含以Man开头的单词的水果。