Doctrine orm 原则2如何一次为多行递增一列?
我正在寻找一种方法,一次为多行增加一个值而不循环,这在理论上可能吗? 以下是简单sql中的查询: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 = "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,非常感谢。