Поиск построителя запросов - PullRequest
0 голосов
/ 09 июля 2020

У меня есть такой код.

***
DB::raw("(SELECT TAPET_NAME FROM MA_TAPE_TYPE WHERE TAPET_CODE = a.MATERIAL_TYPE) as    media_type"), 
DB::raw("(SELECT TAPEF_NAME FROM MA_TAPE_FORMAT WHERE TAPEF_CODE = a.MATERIAL_FORMAT) as media_format"), 
         DB::raw("CASE WHEN a.iden_flag = 'P' THEN b.epi_title WHEN a.iden_flag = 'C' THEN b.prod_version_name WHEN a.iden_flag = 'M' THEN b.promo_name END as episode_title"),
DB::raw("(SELECT MAX (last_date) FROM run_master WHERE run_master.row_id_epi = w.row_id AND run_master.run_aired = 'Y') as last_tx")
***

Когда я вызываю его для функции поиска,

if ($request->get('media_type') != '') {
            $medias = $medias->where('a.material_type','like','%'.strtoupper($request->get('media_type')).'%');
    }

    if ($request->get('media_format') != '') {
            $medias = $medias->where('a.material_format','like','%'.strtoupper($request->get('media_no')).'%');
     }

    if ($request->get('episode_title') != '') {
     $medias = $medias->where('b.promo_name','like','%'.strtoupper($request->get('episode_title')).'%');
     }

     if ($request->get('last_tx') != '') {
        $medias = $medias->where('last_date','like','%'.strtoupper($request->get('last_tx')).'%');
     }

код не может отображать данные, которые должны быть.

Если я напишу такой обычный запрос,

***
->select('a.MATERIAL_ID as media_no'),.....
***

И

        if ($request->get('media_no') != '') {
    $medias = $medias->where('a.material_id','like','%'.strtoupper($request->get('media_no')).'%');
}

Могу вызвать функцию поиска и успешно найти данные. Как мне написать правильный код для синтаксиса поиска, поскольку я использовал синтаксис для этого довольно сложного запроса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...