乐闻世界logo
搜索文章和话题

How can I have IS NULL condition in TypeORM find options?

6 个月前提问
4 个月前修改
浏览次数56

1个答案

1

在TypeORM中,如果您想要构建一个IS NULL的查询条件,可以使用QueryBuilder或简单地在find方法中传递条件。下面是两种方法的例子:

使用 find 方法

假设您有一个名为User的实体,并且您希望找到那些lastLogin字段为NULL的用户,您可以这样做:

typescript
import { getRepository } from 'typeorm'; import { User } from './entity/User'; async function findUsersWithNoLastLogin() { const userRepository = getRepository(User); const users = await userRepository.find({ where: { lastLogin: IsNull(), }, }); return users; }

这里,IsNull() 是 TypeORM 提供的一个方法,用于指定某个字段的值应该为 NULL

使用 QueryBuilder

如果您想使用更灵活的QueryBuilder进行查询,可以这样做:

typescript
import { getRepository } from 'typeorm'; import { User } from './entity/User'; async function findUsersWithNoLastLoginQueryBuilder() { const userRepository = getRepository(User); const users = await userRepository .createQueryBuilder("user") .where("user.lastLogin IS NULL") .getMany(); return users; }

在这个例子中,createQueryBuilder 方法创建了一个新的查询构造器实例,用于构建 SQL 查询。where 方法接受一个字符串条件,这里指定了lastLogin IS NULL

在实际应用中,使用哪种方法取决于您的具体需求。find方法简单易用,适合快速的查询。而QueryBuilder提供了更高的灵活性和控制能力,适合复杂的查询情况。

2024年6月29日 12:07 回复

你的答案