gpt4 book ai didi

symfony - Doctrine 查询 : delete with limit

转载 作者:行者123 更新时间:2023-12-02 03:33:25 24 4
gpt4 key购买 nike

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

但是,它不适用于以下查询(无论是否使用 $query->setMaxResults($limit),它都会删除所有内容而不是删除 $limit 第一个实体)。

$limit = 10;
$query = $entityManager->createQuery(
'DELETE FROM MyProject\Bundle\MyBundle\Entity\MyEntity myEntity
WHERE myEntity.cost = 50'
)
$query->setMaxResults($limit);
$query->execute();

最佳答案

一种有效的解决方案是像这样使用带有 Doctrine 的原生 SQL(而不是 DQL)。

$limit = 10;
$sql = 'DELETE FROM my_entity
WHERE cost = 50
LIMIT ' . $numberOfDeletion;
$stmt = $entityManager->getConnection()->prepare($sql);
$stmt->execute();

关于symfony - Doctrine 查询 : delete with limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com