Get a Quote Right Now

Edit Template

Adding WHERE expression

Adding WHERE expression

Adding a WHERE expression is as easy as:

createQueryBuilder("user").where("user.name = :name", { name: "Timber" })

Which will produce:

SELECT ... FROM users user WHERE user.name = 'Timber'

You can add AND into an existing WHERE expression:

createQueryBuilder("user")
    .where("user.firstName = :firstName", { firstName: "Timber" })
    .andWhere("user.lastName = :lastName", { lastName: "Saw" })

Which will produce the following SQL query:

SELECT ... FROM users user WHERE user.firstName = 'Timber' AND user.lastName = 'Saw'

You can add OR into an existing WHERE expression:

createQueryBuilder("user")
    .where("user.firstName = :firstName", { firstName: "Timber" })
    .orWhere("user.lastName = :lastName", { lastName: "Saw" })

Which will produce the following SQL query:

SELECT ... FROM users user WHERE user.firstName = 'Timber' OR user.lastName = 'Saw'

You can do an IN query with the WHERE expression:

createQueryBuilder("user").where("user.id IN (:...ids)", { ids: [1, 2, 3, 4] })

Which will produce the following SQL query:

SELECT ... FROM users user WHERE user.id IN (1, 2, 3, 4)

You can add a complex WHERE expression into an existing WHERE using Brackets

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" })
        }),
    )

Which will produce the following SQL query:

SELECT ... FROM users user WHERE user.registered = true AND (user.firstName = 'Timber' OR user.lastName = 'Saw')

You can add a negated complex WHERE expression into an existing WHERE using NotBrackets

createQueryBuilder("user")
    .where("user.registered = :registered", { registered: true })
    .andWhere(
        new NotBrackets((qb) => {
            qb.where("user.firstName = :firstName", {
                firstName: "Timber",
            }).orWhere("user.lastName = :lastName", { lastName: "Saw" })
        }),
    )

Which will produce the following SQL query:

SELECT ... FROM users user WHERE user.registered = true AND NOT((user.firstName = 'Timber' OR user.lastName = 'Saw'))

Share

Leave a Reply

Your email address will not be published. Required fields are marked *