Я построил запрос с помощью Knex следующим образом:
knex('discounts')
.where((builder) => {
builder
.where('product_code', productCode)
.where((builder1) => {
builder1
.andWhere('account_code', customer)
.orWhere('account_code', null);
});
})
.select('*');
Все работает нормально, но я чувствовал, что оператор .where
слишком длинный, поэтому попытался использовать функцию .whereIn
, ивот тогда я понял, что это не работает:
knex('discounts')
.where((builder) => {
builder
.where('product_code', productCode)
.whereIn('account_code', [customer, null]);
})
.select('*');
Я знаю, что мы не можем использовать null
с IN
в сыром SQL, и это должно быть сделано так:
WHERE
(columnName IN ('value1', 'value2', 'value3') OR columnName IS NULL)
Мой вопрос: мой первоначальный запрос - единственный способ достичь этого или есть какой-нибудь альтернативный способ использования .whereIn
с null
при использовании Knex?