Я хотел бы обновить несколько записей в db, используя инструкцию WHERE IN с двумя проверками столбцов.
Чистый сырой запрос MySql выглядит примерно так .. и он работает:
UPDATE poll_quota q SET q.count = q.count+1 WHERE q.form_id=14 AND ((q.field_id,q.value) IN (('A',1),('B',1))) 
 $this->createQueryBuilder("q") ->update() ->set("q.count","q.count+1") ->where("q.form_id=:form_id") ->andWhere("((q.field_id,q.value) IN (:wherein))") ->setParameter(":form_id",$form_id) ->setParameter(":wherein",$where_in) ->getQuery() ->execute() ; 
 [Syntax Error] line 0, col 103: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ',' [1/2] QueryException: UPDATE Edge\PollBundle\Entity\Quota q SET q.count = q.count+1 WHERE q.form_id=:form_id AND ((q.field_id,q.value) IN (:wherein)) + 
Attemp, чтобы сделать это так же, также не работает:
 [...]->andWhere("((q.field_id,q.value) IN ({$where_in}))") 
$ where_in содержит строку:
 "('A',1),('B',1)" 
          DQL не позволяет использовать несколько столбцов в инструкции WHERE IN, поскольку не все СУБД поддерживают его.  Вы можете запустить его с необработанным SQL, используя $this->getEntityManager()->getConnection()->executeUpdate()