Doctrine orm 原则2如何一次为多行递增一列?

Doctrine orm 原则2如何一次为多行递增一列?,doctrine-orm,doctrine,Doctrine Orm,Doctrine,我正在寻找一种方法,一次为多行增加一个值而不循环,这在理论上可能吗? 以下是简单sql中的查询: $sql = "UPDATE table set compteur = compteur + 1 where id in ('1','2','3') "; 使用条令更新多行(不是递增),我有以下几点: $qb = $this->getEntityManager()->createQueryBuilder(); $query = $qb->u

我正在寻找一种方法,一次为多行增加一个值而不循环,这在理论上可能吗? 以下是简单sql中的查询:

$sql = "UPDATE table set compteur = compteur + 1 where id in ('1','2','3') ";
使用条令更新多行(不是递增),我有以下几点:

$qb = $this->getEntityManager()->createQueryBuilder();
                    $query = $qb->update('Application\Entity\Table', 'l')
                            ->set('l.compteur', $qb->expr()->literal('8'))
                            ->where("l.id in ('$ids')")
                            ->getQuery();
                    $retour = $query->execute();
谢谢你的建议

为此使用DQL:

$this->getEntityManager()->createQuery('
    UPDATE Application\Entity\Table t
    SET t.compteur = t.compteur + 1
')
->execute();

您也可以使用querybuilder这样做:

$qb->set('l.compteur', $qb->expr()->sum('l.compteur', 1));

是的,我怎么可能太笨了:s,非常感谢。