Ben*_*joe 4 sql laravel eloquent laravel-5
我想将查询转换为laravel构建器格式:
这是我的工作查询:
SELECT * FROM tickets
WHERE tic_status_id = 65
AND (tic_escalation_date1 IS NULL OR tic_escalation_date1 < DATE('2019-06-22 13:00:00'))
AND (tic_escalation_date2 IS NULL OR tic_escalation_date2 < DATE('2019-06-22 13:00:00'))
AND (tic_escalation_date3 IS NULL OR tic_escalation_date3 < DATE('2019-06-22 13:00:00'))
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用whereNull和orWhere,但是它不起作用。
您可以使用参数分组来限制或位置。
将闭包传递给where方法将指示查询构建器开始约束组。闭包将收到一个查询构建器实例,您可以使用它来设置应包含在括号组中的约束。
然后,在约束内,您可以使用whereNull()向查询添加“ where null”子句,或使用orWhereDate()向查询添加“ or where date”语句。注意whereDate方法将从datetime表达式中取出日期部分。
DB::table('tickets')
->where('tic_status_id', '=', 65)
->where(function ($query) {
$query->whereNull('tic_escalation_date1')
->orWhereDate('tic_escalation_date1', '<', '2019-06-22 13:00:00');
})
->where(function ($query) {
$query->whereNull('tic_escalation_date2')
->orWhereDate('tic_escalation_date2', '<', '2019-06-22 13:00:00');
})
->where(function ($query) {
$query->whereNull('tic_escalation_date3')
->orWhereDate('tic_escalation_date3', '<', '2019-06-22 13:00:00');
})
->get();
Run Code Online (Sandbox Code Playgroud)