【问题标题】:SQL full text search on multiple columns with AND logic and wildcard使用 AND 逻辑和通配符对多列进行 SQL 全文搜索
【发布时间】:2020-08-11 05:52:15
【问题描述】:

我有 3 个可搜索的列。当用户输入超过 1 个单词时,我必须搜索包含所有单词 (AND) 的行,并且它可以在 3 列中的任何一个中匹配。应使用通配符 (word*) 搜索所有单词。如何在 SQL 全文搜索中做到这一点。

我尝试使用 AND 运算符的 contains 函数。看起来它只搜索一列。

在“项目”表中,我有 2 列详细信息和受让人。

当用户搜索“doxy vive”时,我需要在带有前缀和 AND 的列中进行搜索。 这是我尝试过但没有奏效的方法。它适用于 OR 条件。

select Details
from [Items]
where CONTAINS((Details,Assignee),'"doxy*" AND "vive*"') 

这解释了如何在多个列上进行搜索,但我需要在多个列上执行 AND。 https://docs.microsoft.com/en-us/sql/t-sql/queries/contains-transact-sql?view=sql-server-ver15#querying-multiple-columns-full-text-search

【问题讨论】:

  • 请显示示例数据、预期结果和您的尝试(全部为格式化文本)。

标签: sql-server full-text-search


【解决方案1】:

我有同样的问题,我不知道它是否是最好的解决方案,但我是这样解决的:

select Details from [Items] where CONTAINS(*,'"vive*"') AND CONTAINS(*,'"doxy*"')

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 2013-12-26
    • 2010-10-31
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    相关资源
    最近更新 更多