我有一个子查询,用于检查与源模型相关的列是否存在。
const defaultingLoans = await Loan.findAll({
where: {
[Op.and]: database.sequelize.literal('EXISTS(SELECT * FROM "Instalments" WHERE "Instalments"."loanId" = "Loan"."id" AND "Instalments"."status" = 'pending')')
}
});
查询运行良好,但理想情况下值pending
不应该是固定的,所以我想在那里使用一个变量来查询不同的状态。
如何用一个变量替换pending字符串。
由于Sequelize有一种奇怪的解析连接SQL查询的方式导致出现错误,所以这里不能使用连接操作。一个例子在这里https://pastebin.com/u8tr4Xbt,我还截了一个屏幕截图在这里。
literal('abc')
和literal('ab'+'c')
都会向该方法传递相同的字符串。 - Taplar