【发布时间】:2019-08-12 04:18:28
【问题描述】:
我有一个这样的原始查询:
$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" => "select * from
act_hi_procinstwhereID_like ? orPROC_INST_ID_like ? orPROC_DEF_ID_like ? orSTART_TIME_like ? orEND_TIME_like ? or `DURATION ▶" “绑定” => 数组:10 [▼ 0 => "%$searchValue%" 1 => "%$searchValue%" 2 => "%$searchValue%" 3 => "%$searchValue%" 4 => "%$searchValue%" 5 => "%$searchValue%" 6 => "%$searchValue%" 7 => "%$searchValue%" 8 => "%$searchValue%" 9 => "%$searchValue%" ] “时间”=> 4.0 ] ]
我该如何解决?
非常感谢!
【问题讨论】:
-
重新检查参数值:'%$searchValue%'
-
@Tomato 您需要将值放在双引号中(
"),或者您可以根据需要将它们连接起来。