我有一個包含大量文本列的表,並且需要能夠使用搜索項來查詢表。對於單而言,這是簡單的...對多個輸入的SQL查詢
SELECT * FROM things WHERE @searchTerm in (column1, column2...columnX)
不過,有時我需要多個詞搜索超過在一個查詢中,像...
SELECT * FROM things WHERE @searchTerms in (column1, column2...columnX)
...其中@searchTerms
是一組值,而不是一個單一的值。有沒有辦法在SQL中模擬這種行爲?
更新: 謝謝@Tedo G.,不幸的是我需要查詢在不同的術語之間使用AND
。要做到這一點,我添加了一個改變你的分組結果,並確保每個不同的結果計數的項數相匹配...
SELECT
*
FROM
things AS A INNER JOIN @searchTerms AS B
ON B.[FieldName] IN (column1, column2...columnX)
GROUP BY column1, column2...columnX
HAVING count(column1) = @numberOfSearchTerms
...這工作,但有沒有更好的辦法?
你或許應該看看你的數據庫的全文搜索功能使用。 –
這可能是我要做的,但我想知道是否有辦法在不使用全文搜索的情況下執行此操作,如果可能的話 – GoatInTheMachine
將@searchTerms值置於臨時表中? – jarlh