doctrine query builder

doctrine query builder Подзапрос (subquery) "SELECT * WHERE value IN (SELECT ...)"

SELECT column-names
FROM table-name1
WHERE value IN (SELECT column-name
       FROM table-name2 
        WHERE condition)

Такой подзапрос можно оформить с помощью QueryBuilder-а через expr()->in(). Например, так:

doctrine QueryBuilder -- where или andWhere. Или как динамически добавлять условия в запрос

В процессе создания запросов к БД, возможно вам потребуется динамически добавлять условия where в запрос. Например, в зависимости от переданных / непереданных аргументов. В таком случае не понятно, сколько всего условий добавится в запрос, и с какого условия он будет начинаться.

Решение просто: всегда используйте метод andWhere() вместо where().

Он не добавит лишних AND в sql, но добавит нужный код.

Почему использовать where() в данном случае не получится: каждый следующий where() заменит предыдущий, а не дополнит.

Subscribe to RSS - doctrine query builder