SQL 查询多个输入

SQL query over multiple inputs

我有 table 包含许多文本列,并且需要能够使用搜索词来查询 table。对于单个术语,这很简单...

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

...这可行,但有更好的方法吗?

实现此目的的另一种方法是制作一个 table 变量并用您的搜索词值填充它,然后加入它:

SELECT 
     * 
FROM 
     things AS A INNER JOIN @searchTerms AS B
          ON B.[FieldName] IN (column1, column2...columnX)