我有一个包含大量文本列的表,并且需要能够使用搜索项来查询表。对于单而言,这是简单的...对多个输入的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