Как в yii2 построить запрос upsert с массивом?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Как в yii2 построить запрос upsert с массивом?

Сообщение alexa777 »

Привет, есть массив $news_id с адишниками новостей
есть SQL запрос

Код: Выделить всё

  Yii::$app->db->createCommand()
        ->upsert(
            'display',
            [
                'hash' => md5($news_id . strtotime($date)),
                'date' => strtotime($date),
                'sum' => 1,
                'news_id' => $news_id ,
            ], [
                'sum' => new \yii\db\Expression('sum + 1'),
            ]
        )
        ->execute();
Как сделать этот запрос, чтобы он добавлял или обновлял счетчик сразу у нескольких новостей, или это можно сделать только несколькими запросами, в зависимости от количества $news_id ?
Этот хэш из склейки id новости и даты, это юник поле чтобы счетчик учитывать по дате
'hash' => md5($news_id . strtotime($date)),
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Как в yii2 построить запрос upsert с массивом?

Сообщение skynin »

alexa777 писал(а): 2020.05.07, 21:13 обновлял счетчик сразу у нескольких новостей
Напишите sql запрос, который это делает.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Ответить