Skip to main content
list_rows, update_rows, and delete_rows select rows with a list of filters. A row matches only when it matches every filter (logical AND).

Filter object

string
required
Column name. Any column in the table, including id and created_at.
string
required
One of the operators below.
string | number | boolean | null
The value to compare with. Omit it for is_null and not_null.

Operators

Comparison operators

The value is converted to the column’s type before comparing, with the same rules as inserts. For example, "2026-11-01T00:00:00Z" compares as a timestamp on a timestamptz column, and "42" compares as a number on an integer column. A value that can’t be converted returns a VALIDATION error. To match NULL, use is_null or not_null. Passing null as the value of a comparison operator returns:
neq doesn’t match rows where the column is NULL, as in SQL.

Pattern operators

like and ilike compare the column’s text form with a SQL pattern:
Pattern operators work on any column type, because the column is compared as text. On a jsonb column, this matches against the JSON text, such as %"fiction"%.

Examples

Not supported

  • OR conditions. Make separate calls and combine the results.
  • Comparing two columns with each other.
  • Filtering on a key inside a jsonb value. Use like or ilike on the JSON text, or store the value in its own column.
  • Joins. Read each table and match rows by their foreign key values.
update_rows and delete_rows change every matching row. Run list_rows with the same filters first to check what matches.