我很困惑要使用什么?SQL Server在列中搜索文本
基本上我需要有一个搜索字符串,可以搜索单个列的多个短语的发生,每个输入短语由空格分隔。
因此,从用户的输入会是这样:
"Phrase1 Phrase2 ... PhraseX" (number of phrases can 0 to unknown!, but say < 6)
我需要用逻辑来搜索:
Where 'Phrase1%' **AND** 'Phrase2%' **AND** ... 'PhraseX%'
...等...所以所有词组必须找到。
总是逻辑与
SO速度,以帐户所采取的表现,难道我用:
罗得的
Like 'Phrase1%' and like 'Phrase2%' and like ... 'PhraseX%' ?
或使用
patindex('Phrase1%' , column) > 0 AND patindex('Phrase2%' , column) > 0
AND ... patindex('PhraseX%' , column)
或使用
增加全文搜索索引,
使用:
Where Contatins(Column, 'Phrase1*') AND Contatins(Column, 'Phrase2*') AND ... Contatins(Column, 'PhraseX*')
或者
????
几乎太多的选择,这就是为什么我要问,这将是这样做的最有效的方法...
你的智慧表示赞赏...
你确定它不是一个'或'?因为这不会返回任何内容:'喜欢'短语1%'和'短语2%''。顺便说一句,这种没有'%'的'LIKE'在开始时会受益于索引 – jazzytomato
当然,它必须记住所有的单词......我已经用FTS解决方案,用“短语*” AND ... etc'...运行良好..谢谢.. – David