contains()
该方法仅用于在 jsonb、数组(array)和范围(range)列上进行过滤
contains()的作用是匹配包含指定元素的行。
换句话说,在指定列中,匹配出来的记录的值是给定数组(array)
的子集。
也就是说,在指定列中,给定的数组(array)
包含了匹配出记录的所有元素。
案例教程
案例1 (关于数组列)#
1create table
2issues (
3 id int8 primary key,
4 title text,
5 tags text[]
6);
7
8insert into
9issues (id, title, tags)
10values
11(1, 'Cache invalidation is not working', array['is:open', 'severity:high', 'priority:low']),
12(2, 'Use better names', array['is:open', 'severity:low', 'priority:medium']);
案例2 (关于范围列)#
1create table
2reservations (
3 id int8 primary key,
4 room_name text,
5 during tsrange
6);
7
8insert into
9reservations (id, room_name, during)
10values
11(1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),
12(2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');
案例3 (关于jsonb列)#
1create table
2users (
3 id int8 primary key,
4 name text,
5 address jsonb
6);
7
8insert into
9users (id, name, address)
10values
11(1, 'Michael', '{ "postcode": 90210, "street": "Melrose Place" }'),
12(2, 'Jane', '{}');
参数说明
列(column)[必要参数]
string类型
要过滤的jsonb、数组或范围列
值(value)[必要参数]
object类型
用来过滤的jsonb、数组或范围值