Skip to main content
Drizzle ORM provides type-safe query builders for all MySQL operations. Each query builder provides a fluent API with method chaining.

Select Query Builder

MySqlSelectBuilder

Builds SELECT queries with support for joins, filters, ordering, and aggregations.

from()

Specifies the table or subquery to select from.
MySqlTable | Subquery | MySqlViewBase | SQL
required
The table, view, subquery, or SQL expression to select from.
IndexConfig
Index hints for query optimization (only for tables).

Examples


where()

Adds WHERE clause filters to the query.

Examples


orderBy()

Orders the results by one or more columns.

Examples


limit()

Limits the number of rows returned.

Examples


offset()

Skips a number of rows before returning results.

Examples


groupBy()

Groups results by one or more columns.

Examples


having()

Filters grouped results (use after groupBy).

Examples


Joins

innerJoin()

Performs an INNER JOIN.

Examples


leftJoin()

Performs a LEFT JOIN (includes all rows from left table).

Examples


rightJoin()

Performs a RIGHT JOIN (includes all rows from right table).

fullJoin()

Performs a FULL OUTER JOIN.

Locking

for()

Adds locking clause (FOR UPDATE or FOR SHARE).

Examples


Set Operations

union()

Combines results from multiple queries (removes duplicates).

Examples


unionAll()

Combines results from multiple queries (keeps duplicates).

intersect()

Returns only rows that appear in all queries.

except()

Returns rows from first query that don’t appear in subsequent queries.

Insert Query Builder

MySqlInsertBuilder

Builds INSERT queries with support for bulk inserts and conflict handling.

values()

Specifies the values to insert.

Examples


select()

Inserts data from a SELECT query.

Examples


ignore()

Ignores duplicate key errors.

Examples


onDuplicateKeyUpdate()

Updates rows on duplicate key.

Examples


Update Query Builder

MySqlUpdateBuilder

Builds UPDATE queries with filtering and ordering.

set()

Specifies the values to update.

Examples


where()

Filters which rows to update.
Always use where() with updates unless you intend to update all rows.

Examples


orderBy()

Orders the rows before updating (used with LIMIT).

limit()

Limits the number of rows to update.

Examples


Delete Query Builder

MySqlDeleteBase

Builds DELETE queries with filtering.

where()

Filters which rows to delete.
Always use where() with deletes unless you intend to delete all rows.

Examples


orderBy()

Orders rows before deletion (used with LIMIT).

limit()

Limits the number of rows to delete.

Examples


Query Execution

All query builders support these execution methods:

execute()

Executes the query and returns the result.

prepare()

Prepares a query for reuse with different parameters.

then()

Query builders are thenable, so you can await them directly.

Subqueries

as()

Converts a query into a subquery with an alias.

Type Safety

All query builders maintain full type safety: