簡體   English   中英

在Postgres中的Array字段中搜索

[英]Search in Array field in Postgres

我具有以下表結構,在這里countries列是數組類型。

 id | name  |             countries             
----+-------+-----------------------------------
  1 | Asia  | {india,china,pakistan,bangladesh}
  2 | World | {india,pakistan,srilanka}

要查找china or sriLanka所有行,請使用以下查詢:

SELECT * 
FROM country_list 
WHERE 'china' = ANY(country_list.countries) 
   OR 'srilanka' = ANY(country_list.countries);

就像In運算符一樣,我們還能有更好的方法嗎?

也許是這樣, SELECT * FROM country_list WHERE name in ('Asia','World');

您可以使用&&重疊運算符

select *
from country_list
where countries && array['china','srilanka'];

嘗試類似此查詢。

SELECT * FROM table WHERE name @> ARRAY['s']::varchar[]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM