【问题标题】:SQL Server 2016, How to use CONTAINS() with multiple word search of database?SQL Server 2016,如何使用 CONTAINS() 对数据库进行多词搜索?
【发布时间】:2017-07-07 16:20:29
【问题描述】:

大部分是 SQL 新手,所以也许有更好的方法,但我正在寻找一种使用文本框搜索数据库的方法,该文本框可以包含任意数量的单词/数字。基本上就像一个搜索引擎。 要搜索的列:[Col1], [Col2], and [Col3]

我有表格全文索引,有什么方法可以使用CONTAINS 吗?

DECLARE @Search nvarchar(500)
SET @Search = 'foo 7 bar' -- can have multiple words/numbers

SELECT *
FROM TableName
WHERE CONTAINS([Col1] or [Col2] or [Col3], @Search)

我意识到最后一行语法不正确,但这基本上就是我要找的。不应该完全匹配或区分大小写,措辞顺序也不应该是('red cat' = 'cat red')。还想显示紧密匹配的结果,即某些关键字不匹配任何内容。

谢谢!

【问题讨论】:

标签: c# asp.net sql-server tsql


【解决方案1】:

您的每个搜索词必须用引号括起来..

'"Hi" AND "I" AND "am" AND "Yogeesha"'

欲了解更多信息,请查看https://msdn.microsoft.com/en-US/library/ms187787(v=SQL.90).aspx

【讨论】:

    【解决方案2】:

    事实证明,使用 FREETEXT() 与我一直在寻找的结果很接近。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      相关资源
      最近更新 更多