我很困惑要使用什麼?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