test=*# select * from mirco where data @> array[123];
id | data
----+-------------------
1 | {123}
2 | {123,234}
3 | {123,234,345}
4 | {123,234,345,456}
(4 rows)
test=*# select * from mirco where data @> array[234, 123];
id | data
----+-------------------
2 | {123,234}
3 | {123,234,345}
4 | {123,234,345,456}
(3 rows)
test=*# select * from mirco where data @> array[234, 123, 456];
id | data
----+-------------------
4 | {123,234,345,456}
(1 row)
test=*#
Wenn die Tabelle größer sein sollte würde ein GiST-Index auf dem Feld die Abfrage auch indexbasiert beschleunigen.
Ich bevorzuge (offensichtlich) die Schreibweise mit array[] da man hier die Werte in der normalen “Schreibweise” des Datentyps angegeben kann. Bei Strings hat man dann z.B. nicht das Problem mit Anführungszeichen innerhalb von Anführungszeichen.