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、数组或范围值