У меня есть такой код.
***
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')).'%');
}
Могу вызвать функцию поиска и успешно найти данные. Как мне написать правильный код для синтаксиса поиска, поскольку я использовал синтаксис для этого довольно сложного запроса