Как добавить одинарную кавычку вместо двойной кавычки с помощью необработанного запроса laravel?

#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();
  

вот документы