0
我有一個名爲'name'的FULLTEXT列,它可能每行包含多個字。使用CONTAINS,我可以搜索可變數量的單詞,並且它可以工作,除非其中一個單詞與其中有&符。MS SQL含有&符號搜索
示例:name = '鮑勃·布朗AB & CD' 這工作:
CONTAINS(name, '"*Bo*" AND "*Br*"')
這些不(與符號的任何搜索詞的):
CONTAINS(name, '"*AB*"')
CONTAINS(name,'"*AB&CD*"')
CONTAINS(name,'"*&*"')
我明白爲什麼最後一次搜索不起作用,因爲CONTAINS只從單詞開始搜索。
是否正在使用FULLTEXT處理&符號作爲分詞符?如果是這樣,這可能解釋爲什麼包括&符號的搜索會失敗。但它不能解釋爲什麼
CONTAINS(name, '"*AB*"')
CONTAINS(name, '"*CD*"') (assuming FULLTEXT sees "CD" as a different word)
會失敗。
如何搜索「AB & CD」或只是「AB」或「CD」,如何緩解搜索,以便返回該行?
P.S.動態SQL不是一個選項,所以我不能連接可變數量的LIKE。