sql - 具有多个值的 WHERE IN 子句
问题描述
当列表中的任何值出现在表中的数组中时,我正在尝试从表中选择项目。
list_id_array 是一个 id 数组,用于标识项目包含在哪些列表中。整数是我想与每一行的数组进行比较的单独列表 id,当任何整数包含在 list_id_array 中时匹配。
这是一个具有一个值的工作示例:
SELECT *
FROM my_table
WHERE
1163650 IN
UNNEST(list_id_array)
这可以按需要工作。但是,我想检查多个 id。例如,除了 1163650 之外,我可能还想检查 654321 和 123456 并选择包含 list_id_array 中任何这些值的项目。
因此,一个不起作用的示例可能更好地描述了我正在寻找的内容:
SELECT *
FROM my_table
WHERE
/*any of the below*/
(1163650, 123456, 654321) IN
UNNEST(list_id_array)
我怎样才能做到这一点?我进行了自己的搜索,但在 IN 之后而不是之前找到不引用参数中多个值的任何内容时遇到了麻烦。
解决方案
使用重叠运算符
where array[1163650, 123456, 654321] && list_id_array