Knex.js 如何在BookshelfFJS查询生成器中与或组合?
我不知道如何添加多个包含“或”查询的“和”查询 我最终想要的结果是这样的:Knex.js 如何在BookshelfFJS查询生成器中与或组合?,knex.js,bookshelf.js,Knex.js,Bookshelf.js,我不知道如何添加多个包含“或”查询的“和”查询 我最终想要的结果是这样的: select * from model where attribute1 = value1 and (attribute2 = value2 or attribute3 = value2) 这是我目前正在尝试的代码: let result = await new Model().query(qb => { qb.where('attribute1', 'value1') qb.where(func
select * from model where attribute1 = value1 and (attribute2 = value2 or attribute3 = value2)
这是我目前正在尝试的代码:
let result = await new Model().query(qb => {
qb.where('attribute1', 'value1')
qb.where(function () {
this.where('attribute2', 'value2')
this.orWhere('attribute3', 'value2')
})
}).fetchAll()
但问题是,查询只执行我编写的第一个条件
如果我先插入括号“或”条件,则输出为:
从模型中选择*,其中(attribute2=value2或attribute3=value2)
如果我先把正常条件放在第一位,输出是:
从attribute1=value1的模型中选择*
这些查询似乎没有用“and”语句“append”(如果这是正确的话)
我知道如果我使用正常的where语句,查询会“追加”
例如:
let result = await new Model().query(qb => {
qb.where('attribute1', 'value1')
qb.where('attribute2', 'value2')
}).fetchAll()
产出:
select * from model where attribute1 = value1 and attribute2 = value2
有什么建议吗?看起来我在使用
qb.debug(true)
时看到了错误的查询,它们非常相似
上述代码按预期工作。很抱歉给您带来不便