【问题标题】:sql server full text search multiple value containssql server全文搜索多个值包含
【发布时间】:2011-11-09 17:42:43
【问题描述】:

我正在使用全文搜索来查找在另一个单词附近有一个单词的行,例如:

select *
from mytable where
contains (mycolumn, 'someword1 near someword2')

从现在开始,我的输入将是一个表格,例如:

declare @words table  
( 
    word varchar(100) not null 
) 

insert into @words (word) values ('someword1') 
insert into @words (word) values ('someword2') 
insert into @words (word) values ('someword3') 

是否可以重写查询以获得相同的结果,或者我需要将@words 行转换为单行文本?

【问题讨论】:

  • @words 表中的所有三个单词都应该彼此靠近?
  • 是的,@words 中的所有内容都应该彼此靠近。

标签: sql-server full-text-search


【解决方案1】:

这个怎么样:

declare @words table (word varchar(100) not null) 
insert into @words (word) values ('someword1') 
insert into @words (word) values ('someword2') 
insert into @words (word) values ('someword3') 

declare @q varchar(4000)
set @q = ''
select @q = @q + ' ~ ' + word from @words  -- join all words
set @q = substring(@q, 4, 4000)            -- remove the first ' ~ '

select *
  from mytable
 where contains (mycolumn, @q)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2014-11-18
    • 2016-09-18
    • 2016-04-15
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多