我有一个包含一组条件的数组,每个条件都有一些要满足的语句:
const conditions = [
{
statement.one = '',
statement.two = ''
},
{
statement.one = '',
statement.two = ''
},
...
]
我想让Knex知道,如果该行满足以下条件之一,则该行将被选中。
如果我事先知道我有多少条件,这可能很容易,然后我可以使用knex().where().orWhere()
进行硬编码。但是,我不知道这一点。有没有一种动态方式可以循环浏览每个条件,检查执行情况,并且只要满足其中一个条件,就可以选择该行而不必担心其他条件?
答案 0 :(得分:1)
查询构建器是可变的。因此,当您这样做时:
const statements = [
{ colName: 'firstName', value: 'Mikael' },
{ colName: 'firstName', value: 'Mr. Mikael' }
];
const builder = knex('myTable');
for (let statement of statements) {
builder.orWhere(statement.colName, statement.value);
}
let result = await builder;
您将获得所有行,其firstName
列的值为Mikael
或Mr. Mikael