im在docker容器上使用postgresql 11.2,并尝试在包含“ event_type”数组的此列上获取数据:
event_type
-----------------
{ERROR}
{INFO}
{ERROR,VERBOSE}
{ERROR,VERBOSE}
{INFO,NOTIFY}
event_type列模式:
event_type | text[]
选择所有包含“ ERROR”的行:(工作正常)
SELECT event_type FROM events WHERE event_type @> ARRAY['ERROR'];
event_type
-----------------
{ERROR}
{ERROR,VERBOSE}
{ERROR,VERBOSE}
(3 rows)
如果我想获取所有包含'ERROR'和\或'NOTIFY'的行:
SELECT event_type FROM events WHERE event_type @> ARRAY['ERROR', 'NOTIFY'];
event_type
------------
(0 rows)
所需的响应为:
event_type
-----------------
{ERROR}
{ERROR,VERBOSE}
{ERROR,VERBOSE}
{INFO,NOTIFY}
答案 0 :(得分:3)
您可以使用重叠运算符&&
SELECT event_type FROM events WHERE event_type && ARRAY['ERROR', 'NOTIFY'];
https://www.postgresql.org/docs/current/functions-array.html