Doctrine Query Builder: как создать запрос, который содержит «ON DUPLICATE KEY UPDATE» - PullRequest
0 голосов
/ 16 января 2019

Возможно ли реализовать множественный запрос вставки при обновлении дубликата ключа с помощью Doctrine Query Builder? Потому что я не вижу методов Query Builder, которые могли бы помочь в написании такого запроса.

У меня есть список объектов, мне нужно обновить их status поля, вместо того, чтобы писать много запросов на обновление, я хочу решить эту проблему, написав всего один запрос «вставить в».

Вот как я решал эту проблему перед установкой Doctrine в свой проект:

$query = "INSERT INTO BRO_campaign(`id`, `name`) ";

for ($this->listOfRunningCampaigns->rewind(); $this->listOfRunningCampaigns->valid(); $this->listOfRunningCampaigns->next())
{
      $current = $this->listOfRunningCampaigns->current();
      $query .= " VALUES(" . $current->getId() . ", '" . $current->getName() . "'),";
}

// Deleting comma in the end of line
$query = substr($query, 0, -1);
$query .= " ON DUPLICATE KEY UPDATE BRO_campaign.`status` = " . $newStatus;

query execution...

Я хочу написать тот же запрос в Query Builder, похоже, он не может делать такие вещи.

...