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