添加WHERE
表达式
添加 WHERE
表达式就像:
createQueryBuilder("user").where("user.name = :name", { name: "Timber" });
将会生成以下 SQL 语句:
SELECT ... FROM users user WHERE user.name = 'Timber'
你可以将 AND
添加到现有的 WHERE
表达式中:
createQueryBuilder("user")
.where("user.firstName = :firstName", { firstName: "Timber" })
.andWhere("user.lastName = :lastName", { lastName: "Saw" });
将会生成以下 SQL 语句:
SELECT ... FROM users user WHERE user.firstName = 'Timber' AND user.lastName = 'Saw'
你也可以添加 OR
添加到现有的 WHERE
表达式中:
createQueryBuilder("user")
.where("user.firstName = :firstName", { firstName: "Timber" })
.orWhere("user.lastName = :lastName", { lastName: "Saw" });
将会生成以下 SQL 语句:
SELECT ... FROM users user WHERE user.firstName = 'Timber' OR user.lastName = 'Saw'
你可以使用Brackets
将复杂的WHERE
表达式添加到现有的WHERE
中:
createQueryBuilder("user")
.where("user.registered = :registered", { registered: true })
.andWhere(new Brackets(qb => {
qb.where("user.firstName = :firstName", { firstName: "Timber" })
.orWhere("user.lastName = :lastName", { lastName: "Saw" })
将会生成以下 SQL 语句:
SELECT ... FROM users user WHERE user.registered = true AND (user.firstName = 'Timber' OR user.lastName = 'Saw')
你可以根据需要组合尽可能多的AND
和OR
表达式。如果你多次使用.where
,你将覆盖所有以前的WHERE
表达式。注意:小心orWhere
- 如果你使用带有AND
和OR
表达式的复杂表达式,请记住他们将无限制的叠加。有时你只需要创建一个 where 字符串,避免使用orWhere
。