【发布时间】:2021-09-14 01:55:14
【问题描述】:
我正在尝试将一个简单的原始 SQL 转换为在 JavaScript 中使用 Bookshelf/Knex:
原SQL:select * from o where o.id = 1 or o.id = 2 and (o.is_a = true or o.is_b = true) and o.status = 'good';
我尝试使用 .orWhere .andWhere 以多种方式重写它,但无法获得与 SQL 相同的结果。我做错了什么?
一些尝试:
await O.forge()
.query({
where: {is_a: true},
orWhere: {is_b: true},
})
.query('whereIn', 'id', ids)
.query('whereIn', 'status', goodStatuses)
另一个尝试:
.query(async qb => {
qb.where('is_a', '=', true)
.orWhere('is_b', '=', true)
.andWhere('id', 'in', ids)
.andWhere('status', 'in', goodStatuses);
})
【问题讨论】:
标签: javascript sql query-builder knex.js bookshelf.js