10
Postgres的一個數組的數據類型,在這種情況下,數字數組:Postgres的 - 比較兩個數組
CREATE TABLE sal_emp (name text, pay_by_quarter integer[]);
INSERT INTO sal_emp VALUES ('one', '{1,2,3}');
INSERT INTO sal_emp VALUES ('two', '{4,5,6}');
INSERT INTO sal_emp VALUES ('three', '{2,4,6}');
SELECT * FROM sal_emp;
Result:
one, {1,2,3}
two, {4,5,6}
three, {2,4,6}
從我可以告訴,你可以按照如下只能查詢一個數組:
SELECT * FROM sal_emp WHERE 4=ANY(pay_by_quarter);
SELECT * FROM sal_emp WHERE ARRAY[4,5,6]=pay_by_quarter;
這意味着你可以選擇一個數組中包含單個參數匹配的行,或者如果整個數組匹配一個數組參數。
我需要選擇行的數組中的任何成員與參數數組的任何成員匹配的行 - 有點像'IN',但我不知道如何。我嘗試了以下兩種方法,但既沒有工作:
SELECT * from sal_emp WHERE ARRAY[4,5,6]=ANY(pay_by_quarter);
SELECT * from sal_emp WHERE ANY(pay_by_quarter) IN (4,5,6);
我想我可以做一些與數組轉換爲一個字符串,但聽起來像解決貧窮..
什麼想法?