我有一个像这样的工作原始查询:
$sql = DB::select("SELECT * FROM act_hi_procinst WHERE ID_ LIKE '%$searchValue%'
OR PROC_INST_ID_ LIKE '%$searchValue%'
OR PROC_DEF_ID_ COLLATE utf8_unicode_ci LIKE '%$searchValue%'
OR START_TIME_ LIKE '%$searchValue%'
OR END_TIME_ LIKE '%$searchValue%'
OR DURATION_ LIKE '%$searchValue%'
OR START_USER_ID_ COLLATE utf8_unicode_ci LIKE '%$searchValue%'
OR START_ACT_ID_ COLLATE utf8_unicode_ci LIKE '%$searchValue%'
OR END_ACT_ID_ COLLATE utf8_unicode_ci LIKE '%$searchValue%'
OR SUPER_PROCESS_INSTANCE_ID_ LIKE '%$searchValue%'");
但是,如果使用此功能,则无法在查询中使用分页功能。因此,我决定像这样将其更改为查询生成器:
$sql = DB::table('act_hi_procinst')
->where('ID_', 'like', '%$searchValue%')
->orWhere('PROC_INST_ID_', 'like', '%$searchValue%')
->orWhere('PROC_DEF_ID_', 'like', '%$searchValue%')
->orWhere('START_TIME_', 'like', '%$searchValue%')
->orWhere('END_TIME_', 'like', '%$searchValue%')
->orWhere('DURATION_', 'like', '%$searchValue%')
->orWhere('START_USER_ID_', 'like', '%$searchValue%')
->orWhere('START_ACT_ID_', 'like', '%$searchValue%')
->orWhere('END_ACT_ID_', 'like', '%$searchValue%')
->orWhere('SUPER_PROCESS_INSTANCE_ID_', 'like', '%$searchValue%')
->get();
当我运行它时,它不返回任何数据。我使用getQueryLog()并看到以下内容:
数组:1 [▼ 0 =>数组:3 [▼ “ query” =>“从
act_hi_procinst
中选择*,其中ID_
如?或PROC_INST_ID_
如?或PROC_DEF_ID_
如?或START_TIME_
如?或{{1 }},例如?或`DURATION▶“ “ bindings” => array:10 [▼ 0 =>“%$ searchValue%” 1 =>“%$ searchValue%” 2 =>“%$ searchValue%” 3 =>“%$ searchValue%” 4 =>“%$ searchValue%” 5 =>“%$ searchValue%” 6 =>“%$ searchValue%” 7 =>“%$ searchValue%” 8 =>“%$ searchValue%” 9 =>“%$ searchValue%” ] “时间” => 4.0 ] ]
我该如何解决?
非常感谢你!
答案 0 :(得分:2)
尝试将where('ID_', 'like', '%$searchValue%')
替换为where('ID_', 'like', '%' .$searchValue . '%')
,并将其应用于其余所有