我有以下查询
$updates = FolderLocker::where('created_at', 'like', $date . '%')
->orWhere('date_forwarded', 'like', $date . '%')
->orWhere('date_locked', 'like', $date . '%')
->orWhere('date_completed', 'like', $date . '%')
->whereIn('videographer_id', $videographerArray)
->orderBy('client_id', 'DESC')
->toSql();
它产生
select * from `folder_lockers` where `created_at` like ? or `date_forwarded` like ? or `date_locked` like ? or `date_completed` like ? and `videographer_id` in (?, ?, ?, ?, ?, ?, ?) order by `client_id` desc
如何使
whereIn
子句成为主要子句,然后使所有OR
子句成为另一个AND? 最佳答案
您可以将封闭位置分组,如下所示:
$updates = FolderLocker::whereIn('videographer_id', $videographerArray)
->where(function ($query) use ($date) {
$query->where('created_at', 'like', $date . '%')
->orWhere('date_forwarded', 'like', $date . '%')
->orWhere('date_locked', 'like', $date . '%')
->orWhere('date_completed', 'like', $date . '%');
})
->orderBy('client_id', 'DESC');
关于php - Laravel-如何在同一查询中使用And和OR嵌套在何处,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39639029/