2016-07-28 4 views
1

Без использования подзапроса я бы хотел найти, если все элементы в массиве равны подмножеству чисел. Итак, вместо 1 = ALL(ARRAY[1,1,1]) Я хочу сделать что-то вроде ALL(ARRAY[1,1,1]) IN (1, 5). Возможно ли это без использования оператора select?Postgresql ALL with IN

ответ

0

Вы хотите использовать оператор @>.

-- does the column contain all of 
select * from test_arrays where values @> array[6, 9]; 
select * from test_arrays where values @> '{6, 9}'::int[]; 

Если вы хотите, чтобы найти где-либо 1 значение массива в другой массив использовать && оператор:

-- does the column contain at-least one of 
select * from test_arrays where values && array[6, 9]; 
select * from test_arrays where values && '{6, 9}'::int[]; 

мне довелось написать об этом пару месяцев назад.

http://www.philliphaydon.com/2016/05/07/postgresql-and-its-array-datatype/