if else sql

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
s-sergey1990
Сообщения: 21
Зарегистрирован: 2014.07.01, 23:11

if else sql

Сообщение s-sergey1990 »

Добрый день! Можно ли как-то в yii2 в query писать if else в самом запросе?
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: if else sql

Сообщение caHek2x »

что вы умеете ввиду ... ? в mysql вы можете if использовать ... но боюсь что окажется все проще чем в формулировке вашего вопроса ...
вот например вырезка из одного моего запроса:

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

SELECT login,
case 
  when accounts.is_blocked in(0) then "разлочен"
  when accounts.is_blocked in(256, 768, 1280, 1792) then "админская"
  when accounts.is_blocked in(16, 48, 80, 112, 4112, 4144, 4176, 4208) then "системная"
  else "чтото странное"
end as blocked,
fin_managers.fio,
IF(ab_blocks.prev_balance IS NOT NULL, ab_blocks.prev_balance, accounts.balance) balance
FROM `isp_users`
вам это надо было ?

или вам надо if else query составить ... ?
типа

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

if ($abrakadabra) $query->andWhere(['qq' => 123]);
else $query->andWhere(['qq' => 456]);
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: if else sql

Сообщение someweb »

Можно

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

        $localQuery = (new Query())
            ->select('product.id')
            ->addSelect(['IF(bunch_legacy IS NOT NULL, bunch_legacy, bunch) bunch'])
            ->...
Только обязательно в [].
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
s-sergey1990
Сообщения: 21
Зарегистрирован: 2014.07.01, 23:11

Re: if else sql

Сообщение s-sergey1990 »

someweb писал(а): 2017.11.23, 14:19 Можно

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

        $localQuery = (new Query())
            ->select('product.id')
            ->addSelect(['IF(bunch_legacy IS NOT NULL, bunch_legacy, bunch) bunch'])
            ->...
Только обязательно в [].
Спасибо, то что нужно
Ответить