Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.12.2018 17:08:46

ADSoft
Откуда: Отовсюду
Сообщений: 1
Сайт

Странное поведение IF в selectRaw

Доброго времени суток всем....
Ломаю голову над простой вроде-бы задачей:

dd(DB::table('t')->selectRaw(" IF(1=?,1,'2') AS S",[1])->first());

Вроде все просто, и в ответе должен получить что? правильно - 1 как число, а получаю "1" как строку
Причем, если второе значение '2' делаю числом - результат тот - что хотел....

Получается, что идет какая то оптимизация, и если внутри IF один из вариантов строка, второй так же приводится к этому типу (((

В чистых запросах SQL такой ерунды нет ....
Как быть? (попытки приводить принудительно внутри IF  к нужному типу - а-ля CAST(1 AS UNSIGNED) не прокатывает

Не в сети

Подвал раздела