gpt4 book ai didi

tsql - 在全文搜索输入字符串中使用多个单词

转载 作者:行者123 更新时间:2023-12-03 10:24:40 24 4
gpt4 key购买 nike

我有基本的存储过程,它通过传入 @Keyword 对表中的 3 列执行全文搜索。范围。它用一个词很好,但当我尝试传递一个以上的词时会失败。我不知道为什么。错误说:

全文搜索条件'this is a search item'中'search item'附近的语法错误

SELECT     S.[SeriesID], 
S.[Name] as 'SeriesName',
P.[PackageID],
P.[Name]
FROM [Series] S
INNER JOIN [PackageSeries] PS ON S.[SeriesID] = PS.[PackageID]
INNER JOIN [Package] P ON PS.[PackageID] = P.[PackageID]
WHERE CONTAINS ((S.[Name],S.[Description], S.[Keywords]),@Keywords)
AND (S.[IsActive] = 1) AND (P.[IsActive] = 1)
ORDER BY [Name] ASC

最佳答案

在将 @Keyword 参数传递到 SQL 语句之前,您必须对其进行一些预处理。 SQL 期望关键字搜索由 bool 逻辑分隔或用引号括起来。因此,如果您要搜索该短语,则必须使用引号:

SET @Keyword = '"this is a search item"'

如果你想搜索所有的词,那么你需要像
SET @Keyword = '"this" AND "is" AND "a" AND "search" AND "item"'

有关更多信息,请参阅 T-SQL CONTAINS syntax ,特别关注 示例 部分。

作为附加说明,请务必替换双引号字符(用空格),以免弄乱全文查询。有关如何执行此操作的详细信息,请参阅此问题: SQL Server Full Text Search Escape Characters?

关于tsql - 在全文搜索输入字符串中使用多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com