如果在一个数组列中想查询包含有某个字符换的时候就不能用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