Beware sql.raw
does not get escaped and going to be embedded into SQL statement as is
SQL raw
This guide assumes familiarity with:
sql.raw
lets you dynamically build SQL by embedding raw strings:
IMPORTANT
await sql`select * from "users" ${sql.raw("where id = 10")}`
select * from "users" where id = 10;
const listUsers = async (filter: string | undefined) => {
const whereClause = filter ? sql.raw(` where ${filter}`) : sql.raw("");
return sql`select * from "users"${whereClause}`;
}
await listUsers(`"id" = 10`);
await listUsers(`"name" = 'Dan'`);
await listUsers();
select * from "users" where "id" = 10;
select * from "users" where "name" = 'Dan';
select * from "users";