如果在一个数组列中想查询包含有某个字符换的时候就不能用like 了吧?

这时候可以使用@> 来查找数组列中某个元素是否包含。

当然同样也适用于:

  • 范围类型
  • 几何类型
  • JSON类型
select version()
PostgreSQL 12.4

CREATE TABLE sor.contacts(id int primary key, name varchar(40),phone varchar(32)[],address text);

insert into sor.contacts select seq, seq, array[seq+13600000000,
seq+13600000001] from generate_series(1, 500000, 2) as seq;

select * from sor.contacts

CREATE INDEX idx_contacts_phone on sor.contacts using gin(phone);



SELECT * FROM sor.contacts WHERE phone @>array['13600006688'::varchar(32)];

 

参考: https://www.postgresql.org/docs/current/functions-json.html

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐