#php #laravel #laravel-5 #laravel-query-builder
#php #laravel #laravel-5 #laravel-конструктор запросов
Вопрос:
Ниже приведен мой запрос;
select "column1", "desc", if r_id = P then Y else
'N' endif As is_selected from "other" where
"rtype" = D_STATUS
Ниже приведена моя функция построения запросов,
DB::table('other')
->select('r_id', 'description', DB::raw("if r_id ='P' then 'Y' else 'N' endif As is_selected")) //Error
->where('rtype', '=', $strType )
->get();
Здесь я получил ошибку ;
Столбец «Y» не найден.
Я хочу добавить одинарную кавычку вместо двойной кавычки во все статические строковые значения в запросе. Как я могу это сделать?
Комментарии:
1. Да, мне просто нужно добавить одинарную кавычку вокруг столбцов Y и N. Можете ли вы сказать мне, как я могу это сделать? @KamleshPaul
2. Ни один ключ возврата не работает @KamleshPaul
3. я думаю, что ваш код верен, поскольку
Column "Y" not found
сообщение об ошибке означает, что в таблице этого столбца нет4. НЕТ, мой запрос работает нормально. в этом запросе просто отсутствует одинарная кавычка вокруг ‘Y’ @KamleshPaul
Ответ №1:
попробуйте так:
DB::table('other')
->select('r_id', 'description', DB::raw("if (r_id ='P','Y','N') as is_selected"))
->where('rtype', '=', $strType )
->get();
Ответ №2:
Вы можете использовать обратную реакцию.
DB::table('other')
->select('r_id', 'description', DB::raw("if r_id ='P' then "Y" else "N" endif As is_selected")) //Error
->where('rtype', '=', $strType )
->get();
вот документы