我有表帐户,其中包含列tickers_set。 Tickers_set是一种text[]
,所以它只是一组代码。
E.g。
account| tickers_set
1 | {'aapl', 'f'}
2 | {'gazp', 'lkoh', 'f'}
如果我想查找所有帐号,其中有'f'代码,我会使用select
SELECT * FROM accounts WHERE 'f' = ANY(tickers_set);
但是,当我想要选择所有帐户中有任何元素的帐户时,我该怎么办?假设我想用代码'f'和'gazp'找到所有帐户。
它应该像交叉选择
SELECT * FROM accounts WHERE ['f', 'gazp'] = ANY(tickers_set);
谢谢!
答案 0 :(得分:2)
这是contains运算符的用途:
SELECT *
FROM accounts
WHERE tickers_set @> array['f', 'gazp'];
如果要查找至少其中一个元素的那些元素,可以使用重叠运算符:
SELECT *
FROM accounts
WHERE tickers_set && array['f', 'gazp'];