Предложение WHERE IN с несколькими значениями - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь выбрать элементы из таблицы, когда какие-либо значения из списка появляются в массиве в таблице.

list_id_array - это массив идентификаторов, идентифицирующих, в какие списки включен элемент. Целые числа - это отдельные идентификаторы списков, которые я хотел бы сравнить с массивом для каждой строки, совпадающие, когда любое из целых чисел включено в list_id_array. ,

Вот рабочий пример с одним значением:

SELECT *
FROM my_table
WHERE 
1163650 IN
UNNEST(list_id_array)

Это работает как нужно. Тем не менее, я хотел бы проверить несколько идентификаторов. Например, в дополнение к 1163650 я мог бы также хотеть проверить 654321 и 123456 и выбрать элементы, которые включают любое из этих значений в list_id_array.

Итак, пример, который не работает, который может лучше описать то, что я ищу:

SELECT *
FROM my_table
WHERE
/*any of the below*/
(1163650, 123456, 654321) IN
UNNEST(list_id_array)

Как я могу это сделать? Я выполнил собственный поиск, но у меня возникли проблемы с поиском чего-либо, что не относилось к нескольким значениям параметра после IN, а не до.

1 Ответ

0 голосов
/ 11 января 2019

Используйте оператор overlaps

where array[1163650, 123456, 654321] && list_id_array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...