我正在开发索引Web的索引器数据库,对于我用于调用存储过程的给定搜索查询,然后从java添加结果
我现在正试图在sql中完成所有操作
我向存储过程发送了多个单词,但它没有得到结果。当它与每个单词一起使用时,它会得到正常结果!
create procedure searchDictionary
@words nvarchar(max)
as
begin
select distinct
WebPage.Address, WebPage.Title
from
WebPage
inner join
Paragraph on WebPage.ID = pageId
inner join
Dictionary on Dictionary.Id = keyword_id
where
Word in (@words);
end
exec searchDictionary N'protests, ukraine'
答案 0 :(得分:0)
这样做的一种方法是在SQL中将@words表示为逗号分隔的字符串:
例如:
"'a', 'b', 'c'"
然后使用动态SQL和sp_execSQL
返回您的设置。
create proc searchDictionary
@words nvarchar(max)
as
declare @SQL varchar(max)
set @SQL = 'select distinct WebPage.Address, WebPage.Title from WebPage inner join Paragraph on WebPage.ID = pageId inner join Dictionary on Dictionary.Id = keyword_id where Word in (' + @words + ');'
exec sp_execSQL @SQL
GO