對不起,但我不能總結這更好。跨欄目全文搜索
最好使用一個例子。假設我有兩個文本列這個簡單的表(我將其他列刪除)。
Id Text_1 Text_2
1 a a b
2 c a b
現在,如果我想搜索'「a」而不是「b」',在我目前的實現中,我獲得了記錄1。我明白這是爲什麼,這是因爲搜索條件與列「Text_1」匹配,而記錄2則不匹配任何列。
但是,對於最終用戶來說,這可能並不直觀,因爲它們可能意味着大部分時間都不包括記錄1。所以我的問題是,如果我想告訴SQL Server執行匹配「跨所有列」(即如果在任何列上找到「NOT」部分,記錄不應匹配),是嗎?可能?
編輯:這是我的查詢將是什麼樣子的這個例子:
SELECT Id, TextHits.RANK Rank, Text_1, Text_2 FROM simple_table
JOIN CONTAINSTABLE(simple_table, (Text_1, Text_2), '"a" and not "b"') TextHits
ON TextHits.[KEY] = simple_table.Id
ORDER BY Rank DESC
的實際查詢是一個比較複雜一點(多列,多連接等),但這是一般的想法:)
謝謝!
@xurumunga。 。 。你能提供一個你正在使用的當前代碼的例子,你認爲這不正確嗎?而且,將數據庫作爲標籤包括在內也很重要,因爲不同的數據庫對於搜索文本具有不同的優勢。 –
感謝@Gordon的建議。我添加了查詢和標籤。 – xurumanga
有一百萬個不同的例子,這是似乎重複的副本:http://stackoverflow.com/questions/1796506/search-all-tables-all-columns-for-a-specific-value-sql-服務器 – RandomUs1r