SQL 更新
await db.update(users)
.set({ name: 'Mr. Dan' })
.where(eq(users.name, 'Dan'));你传递给 update 的对象应当包含与数据库架构中列名匹配的键。
对象中的 undefined 值会被忽略:如果要将某一列设为 null,请传入 null。
你也可以将 SQL 作为值传递给更新对象,例如:
await db.update(users)
.set({ updatedAt: sql`NOW()` })
.where(eq(users.name, 'Dan'));限制
使用 .limit() 为查询添加 limit 子句——例如:
await db.update(usersTable).set({ verified: true }).limit(2);update `users` set `verified` = ? limit ?;排序
使用 .orderBy() 为查询添加 order by 子句,按指定字段对结果进行排序:
import { asc, desc } from 'drizzle-orm';
await db.update(usersTable).set({ verified: true }).orderBy(usersTable.name);
await db.update(usersTable).set({ verified: true }).orderBy(desc(usersTable.name));
// 按多个字段排序
await db.update(usersTable).set({ verified: true }).orderBy(usersTable.name, usersTable.name2);
await db.update(usersTable).set({ verified: true }).orderBy(asc(usersTable.name), desc(usersTable.name2));update `users` set `verified` = ? order by `name`;
update `users` set `verified` = ? order by `name` desc;
update `users` set `verified` = ? order by `name`, `name2`;
update `users` set `verified` = ? order by `name` asc, `name2` desc;