Update Matching Rows

BlockDatabases

Find rows matching a query and update them all with the specified values.

  • Gets an extra input or output for each column of the database you pick.

Inputs

DatabaseRequired

Select the database to update.

Limit

Maximum number of rows to update (default: 100, max: 1000).

Example: 100

Update Mode

How to handle empty fields: keep existing values or replace with empty.

OptionsKeep existing valuesReplace all values
Query

Define filters to find the rows to update.

Set up in the editor. The JSON format is under advanced documentation below.

Outputs

Updated Count

The number of rows that were updated.

Example: 5

Build a bot using blocks like Update Matching Rows

Use this block in our visual flow editor. Bots are hosted 24/7 for free on inventor.bot.

Advanced Documentation

This documentation can be useful when using code mode. View as Markdown

ID: db_update_matching_rows
  • Database columns are extra inputs/outputs named dbcol_<column name>.

Inputs

FieldInventScript nameValue
Databasedatabase_id
Limitlimite.g. "100"
Update Modeupdate_mode"Keep existing values", "Replace all values"
Queryquery_jsonJSON text
query_json format: JSON text of type DatabaseQuery. Fields marked ? are optional.
type DatabaseQuery = {
	where?: FilterGroup
	sort?: SortClause[]
	limit?: number
	offset?: number
}

type FilterGroup = {
	logic: string // "and" or "or"
	conditions: FilterCondition[]
}

type FilterCondition = {
	type: string // "comparison" or "group"
	columnId?: string // comparison only
	operator?: string // comparison only: eq, neq, gt, gte, lt, lte, contains, not_contains, starts_with, ends_with, is_empty, is_not_empty
	value?: string // comparison only
	group?: FilterGroup // group only
}

type SortClause = {
	columnId: string
	direction: string // "asc", "desc" or "random"
}

Outputs

FieldInventScript nameValue
Updated Countupdated_counte.g. "5"

Example InventScript

matchingRows := db_update_matching_rows(Args{database_id: "..."})
send_text_message(Args{
	channel_id:      trigger.channel_id,
	message_content: "Updated Count: " + matchingRows.updated_count,
})

More databases blocks