containedBy()
该方法仅用于在 jsonb、数组(array)和范围(range)列上进行过滤
contains()的作用是匹配那些其中每个元素都被包含在指定的值中的行。
换句话说,在指定列中,给定的数组(array)
是匹配出来的记录值的子集
也就是说,在指定列中,匹配出来的记录的值包含了给定的数组(array)
的所有元素。
案例教程
案例1 (关于数组列)#
1
2create table
3classes (
4 id int8 primary key,
5 name text,
6 days text[]
7);
8
9insert into
10classes (id, name, days)
11values
12(1, 'Chemistry', array['monday', 'friday']),
13(2, 'History', array['monday', 'wednesday', 'thursday']);
案例2 (关于范围列)#
1
2create table
3reservations (
4 id int8 primary key,
5 room_name text,
6 during tsrange
7);
8
9insert into
10reservations (id, room_name, during)
11values
12(1, 'Emerald', '[2000-01-01 13:00, 2000-01-01 15:00)'),
13(2, 'Topaz', '[2000-01-02 09:00, 2000-01-02 10:00)');
案例3 (关于jsonb列)#
1
2create table
3users (
4 id int8 primary key,
5 name text,
6 address jsonb
7);
8
9insert into
10users (id, name, address)
11values
12(1, 'Michael', '{ "postcode": 90210, "street": "Melrose Place" }'),
13(2, 'Jane', '{}');
参数说明
列(column)[必要参数]
string类型
要过滤的jsonb、数组或范围列
值(value)[必要参数]
object类型
用来过滤的jsonb、数组或范围值