@Allanian

Как в Yii2 сделать условие на несколько параметров одного поля?

Есть вот такой запрос, как его можно перевести на yii2?
SELECT * FROM `work_news` WHERE `text` != ' ' AND `status` != 'wait' AND `status` != 'hide' AND `status` != 'ban';
Поле status - тип enum - содержит show,hide,wait,ban
Собрал вот такой, но status не работает.
$queryNews = (new Query())->select(['*'])
->from('work_news')
->where(['hot_news' => '0'])
->andWhere(['not', ['text' => null, 'status' => ['wait', 'hide', 'ban']]])
->orderBy(['created_date' => SORT_DESC])
->limit(1)
->createCommand()->rawSql;
  • Вопрос задан
  • 1066 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
во первых зачем Вам исключать 3 статуса, если можно просто искать записи с статусом show? во вторых 'text' => null в запросе выше вы проверяете поле на не пустоту, а пустота и NULL это разные значения
$queryNews = (new Query())->select(['*'])
->from('work_news')
->where(['hot_news' => '0', 'status' => 'show'])
->andWhere(['<>', 'text', '""']])
->orderBy(['created_date' => SORT_DESC])
->limit(1)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы