Поиск элементов массива в поле типа integer[]

Приветствую Уважаемые форумчане !

Помогите с составлением запроса:

Есть таблица:
CREATE TABLE test(id SERIAL PRIMARY KEY , arr integer[]);

есть массив: '{1,5,88,25}'::integer[]

Нужно выбрать все строки из таблицы test,
где любой элемент из заданного массива
совпадает хоть с одним элементом
поля-массива "arr".

PS: я пробовал мудрить с unnest, но у меня
выбиралось только одна строка =(.

--
С уважением

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Это так просто  SELECT

Это так просто :)

SELECT '{1,5,88,25}'::integer[] && '{2,3,6}'::integer[]

Вот ссылка на остальные операторы: http://www.postgresql.org/docs/9.3/static/functions-array.html

...
Подумал, может не врубишься, напишу "в слепую", без проверки прямо твой код:

SELECT * 
FROM test
WHERE arr && '{1,5,88,25}'::integer[]

Спасибо огромное ! это

Спасибо огромное ! это дествительной просто.

А как тоже самое но с отрицанием сделать ?
(ну чтобы искать строки, где элементы заданного массива
не совпадают ни с одним элементом поля `arr')

Навскидку наверняка

Навскидку наверняка так:

SELECT * 
FROM test
WHERE NOT (arr && '{1,5,88,25}'::integer[])

Работает ! Спасибо ещё раз за

Работает !
Спасибо ещё раз за помощь!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023