2014-09-01 101 views
5

我有以下代码更新查询与LIMIT(setMaxResults)不工作

$qb = $this->createQueryBuilder('cs') 
     ->update() 
     ->set('cs.is_active', 1) 
     ->where('cs.reward_coupon = :reward_coupon') 
     ->setMaxResults($limit) 
     ->setParameter('reward_coupon', $rewardCoupon); 
$qb->getQuery()->execute(); 

这并不在结果查询申请的限制。

回答

1

setMaxResult()必须是你最后的原则声明,以正确的工作

例如:

$qb = $this->createQueryBuilder('cs') 
    ->update() 
    ->set('cs.is_active', 1) 
    ->where('cs.reward_coupon = :reward_coupon') 
    ->setParameter('reward_coupon', $rewardCoupon) 
    ->setMaxResults($limit); 


    return $qb->getQuery()->execute(); 
-1

我认为这可能有助于

$limit=50; 
$i=0; 
$qb = $this->createQueryBuilder('cs') 
->update() 
->set('cs.is_active', 1) 
->where('cs.reward_coupon = :reward_coupon') 
->setParameter('reward_coupon', $rewardCoupon) 
->setFirstResult($i) 
->setMaxResults($limit); 
$qb->getQuery()->execute(); 
+0

你不能设置一个起始索引在UPDATE语句中使用时为LIMIT。 – 2017-03-19 14:56:48