我有一個不尋常的問題,似乎很簡單,但我難住在SQL Server存儲過程。SQL Server多個喜歡
我有2個表,如下所述。
tblMaster
ID, CommitDate, SubUser, OrigFileName
樣本數據
ID CommitDate SubUser OrigFileName
----------------------------------------
1 2014-10-07 Test1 Test1.pdf
2 2014-10-08 Test2 Test2.pdf
3 2014-10-09 Test3 Test3.pdf
上表基本上是跟蹤提交的文件標題表。除此之外,我們還有一個具有以下結構的細節表。
tblIndex
ID, FileID (Linking column to the header row described above), Word
樣本數據:
1. 1, 1, Oil
2. 2, 1, oil
3. 3, 2, oil
4. 4, 2, tank
5. 5, 3, tank
上述行代表,我們要搜索的字,並且如果在一定條件匹配返回相應的文件名/標題行ID 。我想要做的是如果我搜索
- 一個詞(即「油」),那麼系統應該回應所有符合標準的文件(最簡單的情況,並找出問題) )
- 如果搜索到多於一個單詞(即「油」和「坦克」),那麼我們應該只能看到第二個文件,因爲它是唯一一個以油和罐爲關鍵詞的文件。
- 嘗試使用LIKE「%oil%」和LIKE「%tank%」,並且導致沒有行被創建,因爲一個值不能既是油又是油罐。
- 嘗試做一個LIKE「%oil%」或LIKE「%tank%」,但我得到文件1,2和3,因爲OR包含所有其他行。
- 最後一件事,我承認我可以只搜索第一項,然後將結果保存到臨時表中,然後在第二個表中搜索第二項,我將得到我正在尋找的內容。這個問題是我不知道會搜索多少物品。如果有人搜索6個「關鍵字」,我不想創建一個結構,我不斷需要將數據存儲到另一個臨時表中。
任何幫助/想法將不勝感激。
這很好。如果可能的話,我想問另一個問題。如果我有兩個以上的詞來搜索「大油箱」,那麼HAVING COUNT是否也會增加到2? – 2014-10-10 09:29:55
是的。這是需要匹配的不同單詞的數量,在您的示例中超過2,因此> 2。 – Ndech 2014-10-10 09:47:23
非常感謝。 – 2014-10-10 09:50:25