PostgreSQL: сравните два массива, существует ли какое-либо значение во втором массиве

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

Я пишу предложение where, как показано ниже

any(table1.array1) = any(table2.array2)

Но это не работает для меня.


person Rama Krishna    schedule 23.09.2020    source источник
comment
Не видя структуры вашей таблицы и примеров данных, очень сложно ответить на этот вопрос.   -  person Nick    schedule 23.09.2020


Ответы (1)


Оператор && должен помочь. Это вернется, если любой из элементов в Array1 присутствует в Array2. См. документ PostgreSQL здесь: Операторы массива

select array[1,2,3] && array[2,4,5], array[1,2,3] && array[4,5, 6], array[1,2,3] && array[1]
Output: true, false, true

Если вы ищете, все ли элементы присутствуют во втором массиве, вы должны использовать @› или ‹@

person Sharif    schedule 23.09.2020