Flutter: Using filters | Supabase Docs (original) (raw)
- Introduction
- Installing
- Initializing
- Upgrade guide
- Database
- Fetch data
- Insert data
- Update data
- Upsert data
- Delete data
- Call a Postgres function
- Using filters
- Column is equal to a value
- Column is not equal to a value
- Column is greater than a value
- Column is greater than or equal to a value
- Column is less than a value
- Column is less than or equal to a value
- Column matches a pattern
- Column matches a case-insensitive pattern
- Column is a value
- Column is in an array
- Column contains every element in a value
- Contained by value
- Greater than a range
- Greater than or equal to a range
- Less than a range
- Less than or equal to a range
- Mutually exclusive to a range
- With a common element
- Match a string
- Match an associated value
- Don't match the filter
- Match at least one filter
- Match the filter
- Using modifiers
- Return data after inserting
- Order the results
- Limit the number of rows returned
- Limit the query to a range
- Retrieve one row of data
- Retrieve zero or one row of data
- Retrieve as a CSV
- Using explain
- Auth
- Create a new user
- Listen to auth events
- Create an anonymous user
- Sign in a user
- Sign in with ID Token
- Sign in a user through OTP
- Sign in a user through OAuth
- Sign in a user through SSO
- Sign out a user
- Verify and log in through OTP
- Retrieve a session
- Retrieve a new session
- Retrieve a user
- Update a user
- Retrieve identities linked to a user
- Link an identity to a user
- Unlink an identity from a user
- Send a password reauthentication nonce
- Resend an OTP
- Set the session data
- Auth MFA
- Enroll a factor
- Create a challenge
- Verify a challenge
- Create and verify a challenge
- Unenroll a factor
- Get Authenticator Assurance Level
- Auth Admin
- Retrieve a user
- List all users
- Create a user
- Delete a user
- Send an email invite link
- Generate an email link
- Update a user
- Edge Functions
- Invokes a Supabase Edge Function.
- Realtime
- Listen to database changes
- Subscribe to channel
- Unsubscribe from a channel
- Unsubscribe from all channels
- Retrieve all channels
- Storage
- Create a bucket
- Retrieve a bucket
- List all buckets
- Update a bucket
- Delete a bucket
- Empty a bucket
- Upload a file
- Download a file
- List all files in a bucket
- Replace an existing file
- Move an existing file
- Delete files in a bucket
- Create a signed URL
- Retrieve public URL
Filters allow you to only return rows that match certain conditions.
Filters can be used on select()
, update()
, upsert()
, and delete()
queries.
If a Database function returns a table response, you can also apply filters.
Examples
Applying Filters
final data = await supabase
.from('cities')
.select('name, country_id')
.eq('name', 'The Shire'); // Correct
final data = await supabase
.from('cities')
.eq('name', 'The Shire') // Incorrect
.select('name, country_id');
Chaining Filters
final data = await supabase
.from('cities')
.select('name, country_id')
.gte('population', 1000)
.lt('population', 10000)
Conditional Chaining
final filterByName = null;
final filterPopLow = 1000;
final filterPopHigh = 10000;
var query = supabase
.from('cities')
.select('name, country_id');
if (filterByName != null) query = query.eq('name', filterByName);
if (filterPopLow != null) query = query.gte('population', filterPopLow);
if (filterPopHigh != null) query = query.lt('population', filterPopHigh);
final data = await query;
Filter by values within a JSON column
final data = await supabase
.from('users')
.select()
.eq('address->postcode', 90210);
Filter Referenced Tables
final data = await supabase
.from('orchestral_sections')
.select('''
name,
instruments!inner (
name
)
''')
.eq('instruments.name', 'flute');