[英]Problem concatenating strings using JavaScript template literals
我正在使用 prisma.io 庫,但在使用模板文字來執行我想要的操作時遇到了問題。 也許我對他們的了解不夠好。
我有這個電話:
const result = await prisma.$queryRaw`SELECT * FROM User WHERE active = ${activeSetting}`
這完全符合我的要求。
但是,我想在末尾選擇 append 一個字符串,而不必重做完整的語句。
也就是說,我想要這樣的東西:
let result;
if (orderBy === "ASC") {
const result = await prisma.$queryRaw`SELECT * FROM User WHERE active =
${activeSetting} ORDER BY ASC`
} else if {
const result = await prisma.$queryRaw`SELECT * FROM User WHERE active =
${activeSetting} ORDER BY DESC`
}
基本上,我不想必須完成以const result = await
開頭的語句。 我意識到這是一個簡短的例子,但我的問題是當我有相當長的 SQL 語句時,我發現自己做了很多剪切和粘貼巨大的 SQL 這很容易出錯。
我意識到我可以做一個更大的 sql 語句以及連接更大的代碼塊,這會使問題更清楚。 感謝@CertainPerformance 和@Phil 的想法。
這就是我真正想要的,它可以解決我更大的問題,同時還能保證我的安全,我很確定。
const orderByAsc = Prisma.sql`ORDER BY ASC`;
const orderByDesc = Prisma.sql`ORDER BY DESC`;
const result =
await prisma.$queryRaw`SELECT * FROM User WHERE active = ${activeSetting} ${
orderBy === 'ASC' ? orderByAsc : orderByDesc
}`;
如果需要,它還讓我在子句中添加表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.