or()
Match only rows which satisfy at least one of the filters.
Unlike most filters, filters
is used as-is and needs to follow PostgREST
syntax. You also need
to make sure it's properly sanitized.
It's currently not possible to do an .or()
filter across multiple tables.
1const { data, error } = await supabase 2 .from('countries') 3 .select('name') 4 .or('id.eq.2,name.eq.Algeria')
Parameters#
filtersrequired
string
The filters to use, following PostgREST syntax
foreignTablerequired
object
Set this to filter on foreign tables instead of the current table
foreignTableoptional
string
No description provided.
Properties
Notes#
or() expects you to use the raw PostgREST syntax for the filter names and values.
1.or('id.in.(5,6,7), arraycol.cs.{"a","b"}') // Use `()` for `in` filter, `{}` for array values and `cs` for `contains()`. 2.or('id.in.(5,6,7), arraycol.cd.{"a","b"}') // Use `cd` for `containedBy()`
Examples#
With select()
#
1create table
2 countries (id int8 primary key, name text);
3
4insert into
5 countries (id, name)
6values
7 (1, 'Afghanistan'),
8 (2, 'Albania'),
9 (3, 'Algeria');
Use or
with and
#
1create table
2 countries (id int8 primary key, name text);
3
4insert into
5 countries (id, name)
6values
7 (1, 'Afghanistan'),
8 (2, 'Albania'),
9 (3, 'Algeria');
Use or
on foreign tables#
1create table
2 countries (id int8 primary key, name text);
3create table
4 cities (
5 id int8 primary key,
6 country_id int8 not null references countries,
7 name text
8 );
9
10insert into
11 countries (id, name)
12values
13 (1, 'Germany'),
14 (2, 'Indonesia');
15insert into
16 cities (id, country_id, name)
17values
18 (1, 2, 'Bali'),
19 (2, 1, 'Munich');