选择“多列中的任何一列”在“参数值”中的行

时间:2016-05-03 20:55:31

标签: sql sqlite

我有多个列存储可以互换使用的唯一,不同的标识符。因此,我想选择Col1Col2等于任何提供的参数中的任何一个的记录。我已经尝试了以下内容,以及变体IE,其中Col1 in (?, ?)Col2 in (?, ?)

SELECT * FROM Table WHERE EXISTS (Col1, Col2) IN (?, ?);

我现在可以使用以下内容实现这一点,但是,它很长而且难以处理,因为它会为我想要绑定的每个查询重复? in (Col1, Col2)

SELECT * FROM Table WHERE ? in (Col1, Col2) OR ? in (Col1, Col2);

最终,我的查询最多可能有1000个参数(所有参数都是唯一的),所以我想知道是否有更自然的方法来执行上述查询?

1 个答案:

答案 0 :(得分:0)

我会调查using full-text-index tables (FTS)。您可以使用MATCH运算符指定多个搜索项。

    SELECT * from Table WHERE (Col1 MATCH 'this OR that OR something') 
                        AND (Col2 MATCH 'this OR that OR something');