Doctrine查询:删除限制

问题描述 投票:3回答:1

我试图从Doctrine中删除带有删除查询的x对象。由于学说中没有LIMIT,我们应该使用$ query-> setMaxResults($ limit)来代替。我正在使用Symfony2。

但是它不能与以下查询一起使用(使用或不使用$ query-> setMaxResults($ limit),它会删除所有内容,而不是删除$ limit first entities)。

$limit = 10;
$query = $entityManager->createQuery(
        'DELETE FROM MyProject\Bundle\MyBundle\Entity\MyEntity myEntity
         WHERE myEntity.cost = 50'
    )
$query->setMaxResults($limit);
$query->execute();
symfony doctrine-orm doctrine dql doctrine-query
1个回答
1
投票

一个有效的解决方案是使用带有Doctrine的本机SQL(而不是DQL)。

$limit = 10;
$sql    = 'DELETE FROM my_entity
           WHERE cost = 50
           LIMIT ' . $numberOfDeletion;
$stmt = $entityManager->getConnection()->prepare($sql);
$stmt->execute();
© www.soinside.com 2019 - 2024. All rights reserved.