我有一个多值参数。
我想使用全文搜索执行与查询1相同的操作。
查询1:
Declare @Class nvarchar(32)
select *
from Products p
where p.Class in (@Class)
现在我想使用包含:
来使用全文搜索查询2
Declare @Class nvarchar(32)
select *
from Products p
where contains(Class, @Class)
如果用户只选择@Class
的一个值,则此查询可以正常工作。
如果用户选择更多值,则无效。
知道如何实现这一目标吗?
答案 0 :(得分:0)
假设您的@Class
变量以逗号分隔(例如:one,two,three
),您可以将其转换为布尔语法(例如:'"one" OR "two" OR "three"'
),如下所示:
declare @ClassBooleanStr nvarchar(max)
set @ClassBooleanStr = '"' + Replace(@Class, ',', '" OR "') + '"'
select *
from Products p
where contains(Class, @ClassBooleanStr)