gpt4 book ai didi

php - Laravel - 如何在同一查询中使用 And 和 OR 进行嵌套

转载 作者:行者123 更新时间:2023-11-30 22:12:28 29 4
gpt4 key购买 nike

我有以下问题

$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 中的子句?

最佳答案

你可以将你的 wheres 分组在一个闭包中,像这样:

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

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com