我想在Sequelize中做这样的陈述。
Select * from table WHERE completed = 0 AND tracking = 1 AND ((FromNumber = +15625554444 AND ToNumber = +17145554444) OR (FromNumber = +17145554444 AND ToNumber = +15625554444))
我如何在Sequelize中执行此查询?我查看了文档,但很困惑,并且在我的尝试中一直遇到奇怪的查询。
我在实验过程中尝试的实际代码是这样,但它并不意味着什么,因为它现在不起作用。 我不确定此类AND / Or Scenario的语法应该是什么样的。
var setNumberData = await models["texts"].findOne({
where: {
completed: 0,
agentNumber: agentData.number,
trackingNumber: obj.To,
[Op.and]: [
{to: realTo},
{[Op.or] : [{from: agentData.number}]}
],
// [Op.and]: [{to: obj.To}],
// [Op.or]: [{from: obj.To}],
// [Op.and]: [{to: obj.From}]
}
});
答案 0 :(得分:0)
我明白了!关键是[]就像是有问题的条件的括号。
var setNumberData = await models["texts"].findOne({
where: {
completed: 0,
agentNumber: agentData.number,
trackingNumber: obj.To,
[Op.or]: [
{[Op.and] : [
{from: obj.From},
{to: realTo}
]},
{[Op.and] : [
{from: realTo},
{to: obj.From}
]}
]
}
});