SQL Delete

You can delete all rows in the table:

await db.delete(users);

And you can delete with filters and conditions:

await db.delete(users).where(eq(users.name, 'Dan'));

Limit

Use .limit() to add limit clause to the query - for example:

await db.delete(users).where(eq(users.name, 'Dan')).limit(2);
delete from `users` where `users`.`name` = 'Dan' limit 2;

Order By

Use .orderBy() to add order by clause to the query, sorting the results by the specified fields:

import { asc, desc } from 'drizzle-orm';

await db.delete(users).where(eq(users.name, 'Dan')).orderBy(users.name);
await db.delete(users).where(eq(users.name, 'Dan')).orderBy(desc(users.name));

// order by multiple fields
await db.delete(users).where(eq(users.name, 'Dan')).orderBy(users.name, users.name2);
await db.delete(users).where(eq(users.name, 'Dan')).orderBy(asc(users.name), desc(users.name2));
delete from `users` where `users`.`name` = 'Dan' order by `users`.`name`;
delete from `users` where `users`.`name` = 'Dan' order by `users`.`name` desc;

delete from `users` where `users`.`name` = 'Dan' order by `users`.`name`, `users`.`name2`;
delete from `users` where `users`.`name` = 'Dan' order by `users`.`name` asc, `users`.`name2` desc;