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