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`;