在Laravel中将原始查询更改为查询生成器时无法获取数据

时间:2019-03-21 10:22:41

标签: mysql laravel


我有一个像这样的工作原始查询:

$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     ]   ]

我该如何解决?
非常感谢你!

1 个答案:

答案 0 :(得分:2)

尝试将where('ID_', 'like', '%$searchValue%')替换为where('ID_', 'like', '%' .$searchValue . '%'),并将其应用于其余所有

相关问题