2016-07-28 9 views
1

Ohne eine Unterabfrage zu verwenden, würde ich gerne feststellen, ob alle Elemente in einem Array gleich einer Teilmenge von Zahlen sind. Also statt 1 = ALL(ARRAY[1,1,1]) möchte ich etwas wie ALL(ARRAY[1,1,1]) IN (1, 5) machen. Ist dies möglich, ohne eine Select-Anweisung zu verwenden?Postgresql ALL mit IN

Antwort

0

Sie möchten den Operator @> verwenden.

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

Wenn Sie finden wollen, wo jeder ein Wert des Arrays in dem anderen Array verwenden, um die && Betreiber:

-- 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[]; 

Ich war vor über dies ein paar Monate zu schreiben.

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