Yii2. Как сделать deleteAll с условием NOT IN?


Удаление записей в Yii2 при помощи метода deleteAll и условии not in выглядит не очень очевидным и столкнувшись с этой задачей, решил написать короткую заметку с примером реализации.

Секрет в том, что условие надо задавать в виде массива. Приведу пример:

SomeModel::deleteAll([
    'AND',
    'post_id' => $id,
    ['not in', 'id', $arrayOfIds],
]); 

Этот пример сгенерирует следующий запрос (при входящих данных, например $id = 1, $arrayOfIds = [1, 2, 3, 4]):

DELETE FROM `some_table` WHERE post_id = 1 AND NOT id IN ( 1, 2, 3, 4 )

Надеюсь статья была Вам полезной.

Удачи!

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *