我正在研究 NestJS+TypeORM+SQL Server。我想做这样的查询,
SELECT *
FROM tbl_orders
WHERE branch_id = 1
AND (seller_id = 11 OR seller_id IS NULL);
我的简单代码如下。我不知道如何像上面的查询一样放置
seller_id IS NULL
条件:
const result = await this.productRepository.find({
where: { branch_id:1, seller_id:11},
relations: ['seller']
});
解决此问题的一种方法是将查询重构为:
SELECT *
FROM tbl_orders
WHERE (branch_id = 1 AND seller_id = 11)
OR (branch_id = 1 AND seller_id IS NULL);
要指定多个条件(OR 运算),我们可以传入所有所需条件的数组而不是条件对象,而要指定 NULL 检查,我们可以使用
IsNull()
运算符函数。
参考:文档
import { IsNull } from 'typeorm';
// ...
const result = await this.productRepository.find({
where: [
{ branch_id: 1, seller_id: 11 },
{ branch_id: 1, seller_id: IsNull() }
],
relations: ['seller']
});